2013-03-17 5 views
0

Вот мой запрос:Query опуская нулевые строки

SELECT 
    [ASACCT].ACCT_MO_I as 'Types' 
    ,sum(CASE when [TECH_V].[CLOS_T]='N4' THEN 1 ELSE 0 END) AS 'N4' 
    ,SUM(CASE when [TECH_V].[CLOS_T]='N3' THEN 1 ELSE 0 END) AS 'N3' 
    ,SUM(CASE when [TECH_V].[CLOS_T]='N2' THEN 1 ELSE 0 END) AS 'N2' 
    FROM [supt_oper_anls_dw].[dbo].[TECH_V] as [TECH_V] 
    LEFT OUTER JOIN [supt_oper_anls_dw].[dbo].ACCT_DATE_DIM AS [ASACCT] 
    ON CONVERT(varchar(10), [ASACCT].GREG_D, 101) 
     = CONVERT(varchar(10), [TECH_V].[OPEN_TS], 101) 
    WHERE [TECH_INCDT_V].[KGRP_I] ='73fd71ecf84f5080217683869fd819c3' 
    and (
      ([ASACCT].ACCT_MO_I > (datepart(MONTH,getdate()))-1-6 
     and [ASACCT].ACCT_MO_I <=(datepart(MONTH,getdate()))-1 
     and [ASACCT].ACCT_YR_I = (datepart(year,getdate())) 
     ) 
     OR ([ASACCT].ACCT_MO_I > (datepart(MONTH,getdate()))-6-1+12 
     and [ASACCT].ACCT_YR_I = (datepart(year,getdate()))-1 
     ) 
     ) 
    and [TECH_V].Notes like '%MFTFD%' 
    and [TECH_V].notes like '%DEV%' 
    GROUP BY [ASACCT].ACCT_MO_I, [ASACCT].ACCT_YR_I 

не отображаются нулевые строки. Есть несколько сценариев, как в моей таблице TECH_V, не может быть данных для предложений where, которые я предоставил. Но я хочу, чтобы результат отображался как ноль .. но вместо этого вся строка опускается.

Я хочу выход как ниже

1 1 2 3 
2 4 5 6 
3 0 0 0 
4 2 5 4 
5 2 5 6 
6 0 0 0 

но в моем фактическом выходе, то третий и шестой были устранены.

Логика кода правильная .. так как она работает правильно для других, где клаузулы.

+0

могли бы вы опубликовать структуру из двух таблиц и некоторых выборочных данных? – BergListe

+0

Похоже, в этом вопросе есть недостающая информация. Например, почему вы используете GROUP BY, когда ваш запрос не создает агрегацию? Было бы также полезно увидеть схему, связанную с запросом, и, возможно, небольшое объяснение того, какую проблему пытается решить этот запрос. –

ответ

0

Вы должны поменять свой заказ таблицы:

SELECT 
... 
FROM [supt_oper_anls_dw].[dbo].ACCT_DATE_DIM AS [ASACCT] 
LEFT OUTER JOIN [supt_oper_anls_dw].[dbo].[TECH_V] as [TECH_V] 
... 
Смежные вопросы