你好,我已经浏览了一段时间的论坛,在这里问我的第一个问题。我有点束手无策,想知道是否可以得到一些帮助。我正在使用 Access 2007,但还没有在网上找到这个问题的好答案。

我的数据是诊断代码和客户 ID,我正在寻找的是为什么要为每个诊断代码找到客户 ID 的不同计数。理想情况下,在非 Access SQL 中,它看起来像这样:

SELECT DiagCode, Count(Distinct(CustomerID))
FROM CustomerTable
Group By DiagCode;

我知道这是一个非常简单的问题,但我找到的答案要么太复杂(多个聚合函数),要么太简单。这是我用来解决它的一种方法,但这返回了太多结果:
SELECT DiagCode, Count(CustomerID)
FROM CustomerTable
WHERE CustomerID in (SELECT Distinct CustomerID from CustomerTable)
Group By DiagCode;

希望我在这里很清楚,就像我说我的第一篇文章一样,感谢任何帮助。

最佳答案

我不是 MS Access 方面的专家,上次我为它编写任何东西已经很长时间了,但这可能会奏效:

SELECT cd.DiagCode, Count(cd.CustomerID)
FROM (select distinct DiagCode, CustomerID from CustomerTable) as cd
Group By cd.DiagCode;

10-08 11:04