Как перечислить результат в пустых или пустых данных с SQL Server, имеющих сумму?
Как составить список товаров, которых нет (ноль = 0)?
STHAR TABLE
id STHAR_GCKOD STHAR_GCMIK
------------------------------------------------
1 NULL NULL
99 G 2
99 C 2
1525 G 3
1525 C 2
------------------------------------------------
NOTE: G = (+) / C = (-)
РЕЗУЛЬТАТ
ID 1; Not found in result, i want to found in result (TOTAL : 0)
ID 99; TOTAL : 0
ID 1525; TOTAL : 1
Мой код:
SELECT
B.STOK_KODU, B.STOK_ADI, B.URETICI_KODU, B.KOD_1,
SUM(CASE A.STHAR_GCKOD
WHEN 'G' THEN STHAR_GCMIK
ELSE - STHAR_GCMIK
END) BAKIYE
FROM
LSTHAR A
RIGHT OUTER JOIN
TBLSTSABIT B ON B.STOK_KODU=A.STOK_KODU
GROUP BY
B.STOK_KODU, B.STOK_ADI, B.URETICI_KODU, B.KOD_1
HAVING
SUM(CASE A.STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK
ELSE - STHAR_GCMIK END) < B.KOD_6
ORDER BY
B.STOK_KODU ASC
Не удается найти в списке результатов нулевые или пустые данные,
Пусть список результатов в том, что я хотел бы
возможный?
Спасибо..
1 ответ
Решение
Попробуй это
SELECT
B.STOK_KODU, B.STOK_ADI, B.URETICI_KODU, B.KOD_1,
SUM(CASE A.STHAR_GCKOD
WHEN 'G' THEN STHAR_GCMIK
ELSE ISNULL(- STHAR_GCMIK,0) END)
END) BAKIYE
FROM
LSTHAR A
RIGHT OUTER JOIN
TBLSTSABIT B ON B.STOK_KODU=A.STOK_KODU
GROUP BY
B.STOK_KODU, B.STOK_ADI, B.URETICI_KODU, B.KOD_1
HAVING
SUM(CASE A.STHAR_GCKOD WHEN 'G' THEN STHAR_GCMIK
ELSE ISNULL(- STHAR_GCMIK,0) END) < B.KOD_6
ORDER BY
B.STOK_KODU ASC
РЕДАКТИРОВАТЬ: Не уверен, почему вы получили сообщение об ошибке. Однако проблема, связанная с отсутствием значения NULL в исходном запросе, заключается в приведенном ниже статуте CASE.
CASE A.STHAR_GCKOD
WHEN 'G' THEN STHAR_GCMIK
ELSE - STHAR_GCMIK
END
Вы также можете попробовать это, что более понятно
CASE WHEN A.STHAR_GCKOD = 'G' THEN STHAR_GCMIK
WHEN A.STHAR_GCKOD = 'C' THEN - STHAR_GCMIK
WHEN A.STHAR_GCKOD IS NULL THEN 0
END