SQL / SAP B1 — INV1 и RIN1 — нужна помощь в возврате только одной строки на артикул

#sql #sapb1

Вопрос:

Я пытаюсь создать запрос, в котором мне дается только одна строка на артикул с указанием чистого количества и общего количества строк…

На данный момент — когда я запускаю этот запрос — он выдает мне две строки — одну для выставленной суммы и одну для суммы кредита — буду признателен за любую помощь:

 SELECT T2.[ItemCode], T2.[ItemName], T2.[U_MerchCode], T2.[U_CharCode], sum( T1.[Quantity]) as 'Qty',
    ((sum(T1.[LineTotal])) / (sum( T1.[Quantity])) ) as 'Unit Price', sum(T1.[LineTotal]) as 'ex GST'
  FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry]
    INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode]
  WHERE T0.[DocCur] = 'AUD' and T1.[Quantity] > 0 and T0.[DocDate] between [%0] and [%1]
    AND (T2.[U_CharCode] IS NOT NULL or  T2.[U_MerchCode] IS NOT NULL)
  GROUP BY T2.[ItemCode], T2.[ItemName], T2.[U_MerchCode], T2.[U_CharCode]
    
UNION
    
SELECT T2.[ItemCode], T2.[ItemName], T2.[U_MerchCode], T2.[U_CharCode], sum( T1.[Quantity])*-1 as 'Qty',
    ((sum(T1.[LineTotal]))*-1 / (sum( T1.[Quantity]))*-1 ) as 'Unit Price', sum(T1.[LineTotal])*-1 as 'ex GST'
  FROM ORIN T0  INNER JOIN RIN1 T1 ON T0.[DocEntry] = T1.[DocEntry] 
    INNER JOIN OITM T2 ON T1.[ItemCode] = T2.[ItemCode] 
  WHERE T0.[DocCur] = 'AUD' and T1.[Quantity] > 0 and T0.[DocDate] between [%0] and [%1]
    AND (T2.[U_CharCode] IS NOT NULL or  T2.[U_MerchCode] IS NOT NULL)
  GROUP BY T2.[ItemCode], T2.[ItemName], T2.[U_MerchCode], T2.[U_CharCode]
    
ORDER BY T2.[U_CharCode]
 

Например — в настоящее время результат запроса возвращается с этим:
введите описание изображения здесь

В идеале — он вернулся бы с этим: введите описание изображения здесь

Комментарии:

1. Пожалуйста, предоставьте примеры данных, желаемые результаты и четкое объяснение того, чего вы пытаетесь достичь.