簡體   English   中英

運行訪問查詢時,為什么會出現“函數參數無效”和“輸入參數值”?

[英]Why am I getting “Invalid argument to function” and “Enter parameter value” when running my access query?

我有一份記錄清單:

UniqueID  
110000  
110000  
110001  
110002  
110002  
110002  

並希望獲得每條記錄顯示的次數的結果,例如:

UniqueID    times  
110000     1  
110000     2  
110001     1  
110002     1  
110002     2  
110002     3  

我的編碼如下:

SELECT  m.UniqueID,  
(SELECT Count(*)   
From [Query1] AS m2   
Where m2.UniqueID =m.UniqueID And m2.Order1 <= m.Order1) AS COL2b  
FROM [Query1] AS m;

這將給我一個“函數參數無效”的結果,如果我刪除order1的參數,代碼就可以了

SELECT  m.UniqueID,  
(SELECT Count(*)   
From [Query1] AS m2   
Where m2.UniqueID =m.UniqueID) AS COL2b  
FROM [Query1] AS m;

如果我將代碼更改為count(B.Num1)並創建一個新查詢,代碼將給我一個“輸入參數值A.Order1”的結果,如:

SELECT A.UniqueID, (Select Count(B.Num1)
From [Query1] As B
Where B.UniqueID = A.UniqueID AND B.Order1 <= A.Order1) AS COL2b
FROM [Query1] AS A
ORDER BY A.UniqueID;

我確定Order1字段或訪問存在問題。 我該如何解決?


作為參考,Num1是1. Query1的列表

UniqueID    Num1  Order1
110000     1       1
110000     1       2
110001     1       3
110002     1       4
110002     1       5
110002     1       6 

並且查詢1的訪問sql代碼是:

SELECT A.UniqueID, A.Num1, (Select Count(B.Num1)
From [TableRecords] As B
Where B.UniqueID <= A.UniqueID) AS Order1
FROM [TableRecords] AS A
ORDER BY A.UniqueID;

為什么不這樣做:

SELECT a.UniqueId, count(a.uniqueId)
FROM Table a
GROUP BY a.uniqueId

嘗試分析功能。 像這樣的東西:

select UniqueID
, row_number() over(partition by UniqueID order by UniqueID) times
from query1

您最好的選擇(除了更改數據庫)是:

SELECT m.UniqueID,  
       (SELECT Count(*)   
        FROM [Query1] AS m2   
        WHERE m2.UniqueID = m.UniqueID AND
              m2.inflow <= m.inflow
       ) AS COL2b  
FROM [Query1] AS m;

這假設inflow對於每個唯一uniqueid是唯一的。

如果這不起作用,則可以將數據復制到具有自動編號列的新表中。 您可以使用自動編號列而不是inflow

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM