Использование 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';