A,B,Cという複数テーブルの各自から、Zという名のカラムがあるかを確認し、
ある場合には
Zカラムに指定した文字列の件数を抽出し、その総計を知りたいです。
※0かそうじゃないかだけを知りたいので、総計じゃなくても構いません。
B,CのテーブルにZカラムがない場合があり、
その場合には、そのテーブル以外での計算をしたいです。
例:Bがなければ、A+C CがなければA+B B,CがなければAのみ
AにはZカラムが必ずあります
1つのテーブルからカラム件数を抽出する処理(以前やっていたこと)
SQL
1declare @Zカラム VarChar(2); set @Zカラム = '01'; //左記は別の処理で取ってきています 2 3select count ( * ) as 件数 4 from 5 Aテーブル with (nolock) 6 where 7 Zカラム = @Zカラム;
試したこと
SQL
1IF EXISTS( 2SELECT * 3 FROM sys.columns 4 WHERE name = 'Zカラム' 5 AND object_id = Object_ID('[dbo].Aテーブル') 6) 7 select count ( * ) as 件数 8 from 9 Aテーブル with (nolock) 10 where 11 Zカラム = @Zカラム; 12else 13 SELECT null as 件数
これで、まずAテーブルにZカラムの有無を確認し、
ある場合に件数を抽出できるようになりました。
(elseをどうすればいいのか分かりませんでした…)
これを、複数のテーブルで行うことはできるでしょうか?
また、違ったやり方があるでしょうか?
教えていただければと思います。