计算 MS Access 中按名称分组的唯一值
Posted
技术标签:
【中文标题】计算 MS Access 中按名称分组的唯一值【英文标题】:Count unique values grouped by name in MS Access 【发布时间】:2014-06-25 20:43:18 【问题描述】:tech on the net 的练习#3 的答案正是我所需要的。但是通过我自己的经验和Jensen's answer to a similar question 我发现它不起作用。
我的数据如下所示:
my_table:
: Customer : Contract : Product : Date :
: John : 123 : Plate : 12/5/13 :
: John : 123 : Spork : 12/5/13 :
: Jane : 567 : Bowl : 9/9/13 :
: Jane : 789 : Plate : 9/9/13 :
: Jane : 789 : Spork : 9/9/13 :
: Bob : 234 : Plate : 8/7/13 :
: John : 345 : Plate : 4/9/13 :
: John : 345 : Sponge : 4/9/13 :
我想要的是获得每个客户的唯一合同数量。
my_query
: Customer : Number of Contracts :
: Jane : 2 :
: John : 2 :
: Bob : 1 :
如果我只想要 2013 年 6 月至 2014 年 6 月(去年)的合同,那么我会得到:
my_query
: Customer : Number of Contracts :
: Jane : 2 :
: Bob : 1 :
: John : 1 :
提前致谢!
【问题讨论】:
【参考方案1】:您需要使用子查询来获取不同的客户/合同组合,然后您可以对子查询进行分组以获取计数。
SELECT Customer, COUNT(*) AS contract_count
FROM
(SELECT DISTINCT Customer, Contract
FROM my_table) contract_data
GROUP BY Customer
如果你想做一个日期过滤,你可以在子查询中过滤。
SELECT Customer, COUNT(*) AS contract_count
FROM
(SELECT DISTINCT Customer, Contract
FROM my_table
WHERE [Date] BETWEEN #6/1/2013# AND #6/1/2014#) contract_data
GROUP BY Customer
【讨论】:
以上是关于计算 MS Access 中按名称分组的唯一值的主要内容,如果未能解决你的问题,请参考以下文章
即使没有结果,如何在分组的 MS Access 报告中显示类别