ステータス、カウント、および金額の列を持つ要約レポートを作成しています。クエリ結果にそのステータスに一致するレコードがない場合でも、ステータスを一覧表示するにはどうすればよいですか?以下の画像で提供されるサンプルデータ:
レポートをクエリすると(ステータスに一致するテーブル内のレコードを数える)、次の結果が得られます。
ステータスC(ステータスCのレコードはありません)を含む最初のテーブルと一致する結果を取得するにはどうすればよいですか?
ステータス、カウント、および金額の列を持つ要約レポートを作成しています。クエリ結果にそのステータスに一致するレコードがない場合でも、ステータスを一覧表示するにはどうすればよいですか?以下の画像で提供されるサンプルデータ:
レポートをクエリすると(ステータスに一致するテーブル内のレコードを数える)、次の結果が得られます。
ステータスC(ステータスCのレコードはありません)を含む最初のテーブルと一致する結果を取得するにはどうすればよいですか?
左結合を使用します。スキーマを含めていませんが、例は次のようになります。
SELECT S.Name AS Status, COALESCE(COUNT(T.*),0) AS [Count],
COALESCE(SUM(T.Amount),0) AS Amount
FROM Status S
LEFT OUTER JOIN myTable T ON S.Id = T.StatusId
GROUP BY S.ID, S.Name
これを試して
Select Status, Count(*) Count, Sum(Amount) Amount
From Table1
Left Outer Join Table2 ON table1.Status = Table2.Status
Group By Table1.Status