MS Access:如何计算重复行?

时间:2011-08-02 22:09:38

标签: sql ms-access

我的表看起来像这样......

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

我想实现相同的目标,但是,他们的代码不起作用。

谢谢!

2 个答案:

答案 0 :(得分:0)

您需要缩小域名。你可以在解决方案中看到他有

and 
(Date <= #" & [Date] & "#)")

在dcount函数内部。所以你也需要做类似的事情 - 尽管我想你会使用ID代替日期。也许是这样的:

DCount("ID","Table","(PersonID='"&[PersonID]&"') and (PersonID <= " & [PersonID] & ")" )

答案 1 :(得分:0)

你的目标在这里有点模糊。你想找到重复的数量吗?你想不复制吗?为什么不这样做:

  

SELECT count(*),Data1,Data2 FROM Table GROUP BY Data1,Data2