これが私のクエリです:
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
しかし、実際の出力では、3 番目と 6 番目が削除されました。
コード ロジックは正しいです。他の where 句に対して適切に機能しているためです。