2013-04-30 2 views
0

Как перечислить продукты, которые не являются (null = 0)?Как отобразить результат с нулевыми или пустыми данными из SQL Server с суммой?

STHAR ТАБЛИЦА

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 

EDIT: Не знаю, почему вы получили сообщение об ошибке. Однако, проблема не получает NULL значение в исходном запросе является СЛУЧАЙ statument ниже

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 
+0

SUM (CASE A.STHAR_GCKOD КОГДА «G 'THEN STHAR_GCMIK ELSE ISNULL (- STHAR_GCMIK, 0) END) END) BAKIYE, неправильный END) END), справа: END) – Schizophrenia