计算6个月内的所有日期,而不是整体

问题描述 投票:-1回答:1

我试图输出每个销售人员在过去六个月里销售的东西,但我使用的是所有日期并输出它们。

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
sql-server
1个回答
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;