我正在尝试输出每个销售人员在过去六个月中售出的商品,但我使用的是计算所有日期并将其输出。
SELECT SalespersonNo, COUNT (SalespersonNo) AS ['CarsSold']
FROM CarForSale
WHERE DateSold > '01/08/2018'
GROUP BY SalespersonNo;
如上所述,它输出的所有日期相加,而不是我想要的,它将所有过去6个月内售出的汽车相加
这些是我得到的结果:
SalespersonNo 'CarsSold'
100001 4
100002 1
100003 1
100004 4
100005 2
100010 1
100011 2
100012 2
100015 1
100017 2
100020 2
我的目标是获得这样的结果:
SalespersonNo 'CarsSold'
100001 3
100003 1
100004 3
100005 1
100011 2
100015 1
100017 2
100020 1
答案 0 :(得分:0)
您可能要使用条件聚合:
SELECT SalespersonNo,
COUNT(SalespersonNo) AS [CarsSoldTotal],
COUNT(CASE WHEN DateSold > DATEADD(mm, -6, GETDATE()) THEN 1 END) AS [CarsSold6Month]
FROM CarForSale
WHERE DateSold > '01/08/2018'
GROUP BY SalespersonNo;