我的 table 看起来像这样......
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 是数据库 Access 唯一 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] & ")" )
关于sql - 微软 Access : How can I count duplicate rows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919306/