Я пытаюсь выполнить запрос к своей базе данных 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
Я собираюсь найти правильный путь, чтобы решить эту проблему, или есть более простой способ, который я полностью упустил из виду!