【发布时间】:2019-08-17 00:46:09
【问题描述】:
我有一个记录列表:
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;
【问题讨论】:
-
首先,不应在单独的行上重复名为
uniqueid的内容。其次,如果你只有一列,这在 MS Access 中是非常困难的。你还有其他专栏吗? -
原表还有另一列“流入”,但此处未使用。对不起“唯一ID”。只是命名问题。您可以只使用它的帐户 ID。
标签: sql ms-access select subquery ms-access-2010