Я пытаюсь суммировать несколько значений скидок (в клиентах csv экспорта), если сегодняшняя дата находится между FROMDATE и EXPIRYDATE.
Если я суммирую значения скидок, все в порядке, но если я попрошу проверить, находится ли сегодня значение между FROMDATE и EXPIRYDATE, это заставит меня добавить «FROMDATE and EXPIRYDATE» в GROUP BY, и это приведет к дублированию строк и СУММА не работает.
Вот код, я подписал проблемные части с **
Я очень ценю вашу помощь!
SELECT
CUSTOMERS.CUSTNAME AS 'ERP Code',
CUSTOMERS.CUSTDES AS 'Name',
CUSTOMERS.PHONE AS 'Phone',
(SELECT TOP 1 PHONEBOOK.CELLPHONE FROM PHONEBOOK WHERE
CUSTOMERS.CUST=PHONEBOOK.CUST) AS 'Mobile',
(SELECT TOP 1 PHONEBOOK.NAME FROM PHONEBOOK WHERE CUSTOMERS.CUST=PHONEBOOK.CUST) AS 'Prop1 Contact Name',
CUSTOMERS.FAX AS 'Fax',
CUSTOMERS.ADDRESS AS 'Address',
CUSTOMERS.STATE AS 'City',
CUSTOMERS.ZIP AS 'ZIP Code',
CUSTOMERS.VATNUM + CUSTOMERS.WTAXNUM AS 'Goverment ID',
CUSTOMERSA.EMAIL AS 'Email',
**(SELECT SUM (DISCOUNTS.T$PERCENT) WHERE GETDATE() BETWEEN zoom#system.dbo.tabula_dateconvert(DISCOUNTS.FROMDATE) AND zoom#system.dbo.tabula_dateconvert(DISCOUNTS.EXPIRYDATE)) AS 'Discount',**
ISNULL(CUSTPLIST.PLIST, -1) AS 'Price Level Code',
(SELECT (PAY.PAYDES) FROM PAY WHERE CUSTOMERS.PAY=PAY.PAY) AS 'Prop2'
FROM CUSTOMERS
LEFT OUTER JOIN CUSTOMERSA
ON CUSTOMERS.CUST=CUSTOMERSA.CUST
LEFT OUTER JOIN CUSTDISCOUNT
ON CUSTOMERS.CUST=CUSTDISCOUNT.CUST
LEFT OUTER JOIN DISCOUNTS
ON CUSTDISCOUNT.DISCOUNT=DISCOUNTS.DISCOUNT
LEFT OUTER JOIN CUSTPLIST
ON CUSTOMERS.CUST=CUSTPLIST.CUST
LEFT OUTER JOIN CUSTSTATS
ON CUSTOMERS.CUSTSTAT=CUSTSTATS.CUSTSTAT
WHERE CUSTOMERS.CUST > 0
and CUSTOMERS.CUSTSTAT between -4 and -2
GROUP BY CUSTOMERS.CUSTNAME,CUSTOMERS.CUSTDES,CUSTOMERS.PHONE,CUSTOMERS.CUST,CUSTOMERS.FAX,CUSTOMERS.ADDRESS,CUSTOMERS.STATE,CUSTOMERS.ZIP,CUSTOMERS.VATNUM,CUSTOMERS.WTAXNUM,CUSTOMERSA.EMAIL,CUSTPLIST.PLIST,CUSTOMERS.PAY,**FROMDATE,EXPIRYDATE**
ORDER BY Name;