0
ために0値を返しません。データがない月には0の値を表示したい。合計は0がこれを把握することができないようであれば、現在のクエリにはレコードを返しません。以下は、クエリを参照してください:T-SQLクエリは、私は薬の治療の日数を計算していたクエリを持つ和
私は、過去5年間の各月の60行、1を得るWhere句とともにDOT_ALLテーブルに関連した識別子をコメントアウトした場合。 2016年8月、2016年4月とJan 2015のためのドットが事前に
おかげで存在していないので、しかし、そうでない私は、WHERE句での薬剤のための唯一の57を取得します。
----------------------------------------------------------------------------
SELECT
AMS.[Medication Name]
, SUM(AMS.DOT) AS DOT
, PD.[Patient Days]
, PD.[Month_Name]
, PD.[Fiscal_Month]
, PD.[Accounting_Year]
, PD.[Year]
FROM
DW_PROD.dbo.Patient_Days_By_Month PD
Left JOIN [DW_PROD].[dbo].[DOTS_All] AMS ON (PD.Month_Name = AMS.Month AND PD.Year = AMS.Year)
WHERE
[Medication Name] = 'CEFUROXIME'
GROUP BY
AMS.[Medication Name]
, PD.[Patient Days]
, PD.[Month_Name]
, PD.[Fiscal_Month]
, PD.[Accounting_Year]
, PD.[Year]
ORDER BY
ACCOUNTING_YEAR
,FISCAL_MONTH
'薬NAME'は' DOTS_All'(?)のカラムになり、それは 'WHERE'ので、全体結果セットを制限するにあります。代わりに追加の結合条件として追加してみてください。 – dlatikay
潜在的なdup:http://stackoverflow.com/questions/14793057/how-to-include-zero-0-results-in-count-aggregate –
日付(cte、サブクエリ、ハードコードされた、何でも)およびそれから両方のテーブルを結合したままにします。 – Malk