[英]Why am I getting “Enter Parameter Value” when running my MS Access query?
[英]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.