我想查询我的SQL数据库,以获取在特定日期范围内每个客户的订单数量。
我有以下订单清单
CustomerName ClientID DateOrdered
Customer No.2 10 2011-11-25
Customer No.3 11 2011-10-15
Customer No.3 11 2011-11-25
我希望能够查询特定客户在2011年11月1日至2011年11月30日期间的订单数量,结果应如下所示:
CustomerName ClientID Number
Customer No.3 11 1
Customer No.2 10 1
到目前为止,我已经成功实现了这个。
SELECT CustomerName, ClientID, COUNT(*) AS Number
FROM Orders t
GROUP BY CustomerName, ClientID
HAVING COUNT(*) =
(SELECT MAX(Number)
FROM
(SELECT CustomerName, ClientID, COUNT(*) AS Number
FROM Orders
GROUP BY CustomerName, ClientID ) x
WHERE CustomerName = t.CustomerName )
这让我获得了客户曾经下过的所有订单
CustomerName ClientID Number
Customer No.3 11 2
Customer No.2 10 1
我这样解决问题的方式是否正确,还是有更简单的方法我完全忽略了?