我的桌子是这样的...
PersonID Data1 Data2
1 XXXX YYYY
1 BBBB YYYY
2 BBBB YYYY
3 XXXX YYYY
我希望它看起来像这样......
PersonID SubRank Data1 Data2
1 1 XXXX YYYY
1 2 BBBB YYYY
2 1 BBBB YYYY
3 1 XXXX YYYY
我想出的最接近的解决方案看起来像这样......(ID是数据库访问唯一ID)
SELECT TABLE.PersonID, DCount("ID","Table","(PersonID='"&[PersonID]&"')",) AS SubRank, Table.Data1, Table.Data2
FROM Table
ORDER BY Table.PersonID;
但这仅返回唯一行的总值(即,PersonID #1 的 Subrank 两次都是“2”)。最终,此查询将提供交叉表查询,以将单个 personID 的所有数据获取到一行中。
我从这里获取了上面的解决方案:http://www.ozgrid.com/forum/showthread.php?t=39231&page=1
我想实现同样的目标,但是,他们的代码不起作用。
谢谢!
您需要缩小范围。你可以在解决方案中看到他有
and
(Date <= #" & [Date] & "#)")
在 dcount 函数内部。所以你也需要做类似的事情——尽管我想你会使用 ID 而不是日期。也许是这样的:
DCount("ID","Table","(PersonID='"&[PersonID]&"') and (PersonID <= " & [PersonID] & ")" )
你的目标有点模糊。您想查找重复项的数量吗?您想取消重复吗?为什么不这样做:
从表组中选择计数(*),Data1,Data2 BY Data1,Data2