Использование SQL Server 2008: Я пытаюсь написать отчет о транзакциях клиентов, которые произошли за прошлую неделю и которые превышают 1000 долларов США. У меня есть следующий SQL запрос, который даст мне правильные записи, но, очевидно, агрегирует результаты:T-SQL возвращает негруппированные записи, составляющие сумму
SELECT
customerID,
CAST(createdAt AS DATE) AS transactionDate,
SUM(transactionAmount) as dailyTotal,
FROM transactions
WHERE createdAt > DATEADD(DAY, -7, GETDATE())
GROUP BY clientID, CAST(createdAt AS DATE)
HAVING SUM(transactionAmount) > 1000
Результирующее в чем-то вроде:
| customerID | transactionDate | dailyTotal |
| 1 | 2013-11-01 | 1212 |
| 2 | 2013-11-01 | 10002 |
...
| 1 | 2013-11-02 | 5212 |
Однако, мне нужно, чтобы получить отдельные записи, которые содержат эти агрегированные результаты, но, очевидно, не могут пропустить заявление GROUP BY
. Возможно, то, чего я пытаюсь достичь, невозможно в одном запросе?
Я принял этот ответ, поскольку он решил мою точную проблему, и синтаксис был знаком. Пример CTE от marc_s также представляет интересную реализацию. – Tykus