Не помещайте ORDER_QTY
в GROUP BY
, вместо этого используйте SUM(ORDER_QTY)
в SELECT
...
SELECT
YEAR_
,MONTH_
,BILL_TO
,SUM(ORDER_QTY) AS ORDER_QTY
FROM
openquery(TESTSVR,'
select OD.QTY AS ORDER_QTY
,CASE
WHEN OH.BILLING = ''12345''
THEN ''TESTING''
WHEN OH.BILLING = ''98765''
THEN ''TESTING1''
WHEN OH.BILLING = ''15973''
THEN ''TESTING2''
END AS BILL_TO
,TO_CHAR(CRDT, ''MONTH'') AS MONTH_
,TO_CHAR(CRDT, ''YYYY'') AS YEAR_
from TEST.TESTSVR OD
LEFT JOIN TEST.TESTSVR2 OH
ON OD.ORDER = OH.ORDER
WHERE TO_CHAR(OH.CRDT, ''YYYY-MM-DD'') >= ''2019-01-01''
AND OD.SPCD = ''SPECIAL CODE 1''
AND OH.BILLING IN (''12345'',''98765'',''15973'')
GROUP BY TO_CHAR(OHCRDT, ''YYYY'')
,TO_CHAR(OHCRDT, ''MONTH'')
,CASE
WHEN OH.BILLING = ''12345''
THEN ''TESTING''
WHEN OH.BILLING = ''98765''
THEN ''TESTING1''
WHEN OH.BILLING = ''15973''
THEN ''TESTING2''
END
,OD.QTY
')
GROUP BY
YEAR_
, MONTH_
, BILL_TO
На самом деле, просто сделать все это в удаленном месте?
SELECT
*
FROM
openquery(TESTSVR,'
SELECT
,TO_CHAR(CRDT, ''MONTH'') AS MONTH_
,TO_CHAR(CRDT, ''YYYY'') AS YEAR_
,CASE
WHEN OH.BILLING = ''12345''
THEN ''TESTING''
WHEN OH.BILLING = ''98765''
THEN ''TESTING1''
WHEN OH.BILLING = ''15973''
THEN ''TESTING2''
END
AS BILL_TO,
SUM(OD.QTY) AS ORDER_QTY
FROM
TEST.TESTSVR OD
LEFT JOIN
TEST.TESTSVR2 OH
ON OD.ORDER = OH.ORDER
WHERE
TO_CHAR(OH.CRDT, ''YYYY-MM-DD'') >= ''2019-01-01''
AND OD.SPCD = ''SPECIAL CODE 1''
AND OH.BILLING IN (''12345'',''98765'',''15973'')
GROUP BY
TO_CHAR(OHCRDT, ''YYYY'')
,TO_CHAR(OHCRDT, ''MONTH'')
,CASE
WHEN OH.BILLING = ''12345''
THEN ''TESTING''
WHEN OH.BILLING = ''98765''
THEN ''TESTING1''
WHEN OH.BILLING = ''15973''
THEN ''TESTING2''
END
')