Использование двух таблиц в MSSQL:
Одна таблица, [ЗАКАЗЧИК], содержащая информацию о донорах.
- Удалить столбцы: [CustID], [Имя]
Одна таблица [DONATION], содержащая записи для каждого пожертвования.
- Удалить столбцы: [CustID], [Amount], [Date]
Таблицы имеют общий ключ, [CustID].
Я хочу объединить [Суммы] в соответствии с каждым [CustID]
SELECT DONATION.CUSTID
,PEOPLE.NAME
,SUM (DONATION.AMOUNT) as TOTAL_DONATION
FROM [dbo].[DONATION] INNER JOIN [dbo].[PEOPLE] ON DONATION.CUSTID = PEOPLE.CUSTID
GROUP BY
DONATION.CUSTID
,PEOPLE.NAME
HAVING SUM (DONATION.AMOUNT) > 100
Этот запрос работает нормально , даже с добавлением предложения HAVING.
Когда я хочу ограничить даты сбора пожертвований для агрегирования (добавляя к предложениям SELECT, GROUP BY и HAVING), однако ...
SELECT DONATION.CUSTID
,PEOPLE.NAME,DONATION.DATE
,SUM (DONATION.AMOUNT) as TOTAL_DONATION
FROM [dbo].[DONATION] INNER JOIN [dbo].[PEOPLE] ON DONATION.CUSTID = PEOPLE.CUSTID
GROUP BY
DONATION.CUSTID
,PEOPLE.NAME
,DONATION.DATE
HAVING SUM (DONATION.AMOUNT) > 100
and DONATION.DATE > '1-1-2010'
Запрос больше не возвращает совокупные суммы пожертвований каждого человека, но возвращает индивидуальные пожертвования для каждого человека, которые соответствуют критериям HAVING.
Как я могу реализовать это ограничение даты? Это как я присоединяюсь или суммирую или ....? Спасибо.