Reputation: 47
How to list products that are not (null = 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 = (-)
RESULT
ID 1; Not found in result, i want to found in result (TOTAL : 0)
ID 99; TOTAL : 0
ID 1525; TOTAL : 1
My code:
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
Can not find the list of results is null or empty data,
Let the list of results in the fact that I would like
possible ?
Thank you ..
Upvotes: 0
Views: 444
Reputation: 6205
Try this
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
EDIT: Not sure why you got error message. However, the problem of not getting NULL value in your original query is the CASE statument below
CASE A.STHAR_GCKOD
WHEN 'G' THEN STHAR_GCMIK
ELSE - STHAR_GCMIK
END
You can also try this, which more clear
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
Upvotes: 1