Распространенный запрос к базе данных SQL возвращает результаты за пределами необходимого мне диапазона
Использование Sage 50 и клиентского интерфейса Pervasive ODBC для извлечения данных только для чтения из нашей БД.
У меня есть запрос, используемый для поиска новых клиентов на основе даты их первого выставления счета. Он должен вернуть название категории одного купленного товара, минимальную дату транзакции (дата первого счета-фактуры - Sage не генерирует это) и общую сумму $ первого счета-фактуры.
Проблема заключается в том, что когда новый клиент купил несколько раз в выбранном диапазоне дат, запрос получит наибольшую сумму счета, даже если он выходит за пределы диапазона, который я хочу просмотреть. Я смотрю с Q1 по Q2 1/1 - 6/30.
Я попытался изменить предложение WHERE, чтобы ограничить счета, на которые он может смотреть, но он все равно будет получать даты, превышающие диапазон. Я предполагаю, что у меня есть проблема FWGHSO.
WHERE journalex = 8 AND h.transactiondate BETWEEN '2019-01-01' AND '2019-06-30'
Конечная цель состоит в том, чтобы получить новых клиентов в диапазоне дат, основанном на дате их первого счета, категории товаров в первом счете и общей сумме счета $ из их первого счета.
SELECT c.customerid, MAX(l.category) AS "Lead Source", MIN(h.transactiondate) AS "First Inv Date", MAX(r.amount) AS "Invoice Total"
FROM jrnlhdr "h" LEFT OUTER JOIN
JrnlRow "r" ON h.postorder = r.postorder LEFT OUTER JOIN LineItem "l" ON r.itemrecordnumber = l.itemrecordnumber
INNER JOIN customers "c" ON r.customerrecordnumber = c.customerrecordnumber
WHERE journalex = 8
GROUP BY c.customerid
HAVING MIN(h.transactiondate) BETWEEN '2019-01-01' AND '2019-06-30';