我被要求找到在 2012 年 6 月至 2012 年 8 月之间以及在 2012 年 9 月至 2012 年 10 月之间购买的人。所以我这样做了。当我检查它们时,这个查询得到的结果对我来说看起来是正确的。
SELECT o.BillEmail
FROM dbo.tblOrder o
WHERE (SELECT COUNT(o2.OrderDate)
FROM dbo.tblOrder o2
WHERE o2.OrderID = o.OrderID
AND o2.OrderDate >= '2012-06-01' AND o2.OrderDate <= '2012-08-31') > 0
AND (SELECT COUNT(o2.OrderDate)
FROM dbo.tblOrder o2
WHERE o2.BillEmail = o.BillEmail
AND o2.OrderDate >= '2012-09-01' AND o2.OrderDate <= '2012-10-31'
AND o2.DomainProjectID=13) > 0
GROUP BY o.BillEmail
ORDER BY o.BillEmail
然后他们让我找出这两个时间段内每个客户的订单总数,以及这些订单的总数。所以我只是添加了这些要求:
SELECT o.BillEmail, COUNT(o.OrderID) as Orders, SUM(o.Total) as 'Total'
FROM dbo.tblOrder o
WHERE (SELECT COUNT(o2.OrderDate)
FROM dbo.tblOrder o2
WHERE o2.OrderID = o.OrderID
AND o2.OrderDate >= '2012-06-01' AND o2.OrderDate <= '2012-08-31') > 0
AND (SELECT COUNT(o2.OrderDate)
FROM dbo.tblOrder o2
WHERE o2.BillEmail = o.BillEmail
AND o2.OrderDate >= '2012-09-01' AND o2.OrderDate <= '2012-10-31'
AND o2.DomainProjectID=13) > 0
GROUP BY o.BillEmail
ORDER BY o.BillEmail
但是,这只会从 6 月到 8 月的第一个指定时间段拉取订单。所以它只显示从那时起的订单和总支出,而不是下半年。
我如何让它同时提取两个时期的数据?