#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. Пожалуйста, предоставьте примеры данных, желаемые результаты и четкое объяснение того, чего вы пытаетесь достичь.