複数のSELECT文をUNION ALLするなどしていたら重複箇所がでてきたことなどないだろうか?
そんなときは共通テーブルを使用して共通部分のテーブルを作成しておくことをお勧めする。
http://msdn.microsoft.com/ja-jp/library/ms190766(v=sql.105).aspx
共通テーブルの書き方としては
with CTE_LIST
(
共通する列A,
共通する列B,
)
as
(
select文①
)
select②
・・・・・
のようにして使用する。
共通テーブルでは最初のかっこ内に共通する列(特にキーとなる列)を書いていき、
あとのselect文②で
select
CTE_LIST.列A・・・
というように記述して共通テーブルを使用できるのだ。
赤字箇所が共通テーブルの記述部分であり、このSQL文が動いている間一時的に保持される
テーブルのようなものとして何度も参照が可能であり、便利である。
SQL文が長くなってきて共通箇所が多いな~と感じたら一度使用してみてはどうだろうか?