Temporary Table とは?
2008.05.14
その他
最近私はTemporary Table(一時テーブル)
という技術(技?)をプログラミングに利用するようになりました。
前々から知ってはいた技術だったのですが、
イメージ的に「難しい」「不便」というイメージがあったのですが。。。
使ってみるとメチャクチャ便利。笑
今回はこのTemporary Tableの便利な点をちょこっと説明します。
まず以下例をご覧ください。
CREATE TABLE# t1 ———-Temporary Tableを生成
(
A nvarchar(10) NOT NULL, ——文字列型のカラムA
B Int NOT NULL, ——数値型のカラムB
C Int NOT NULL, ——数値型のカラムB
)
INSERT #t1 –Tempテーブルに値を入れ込む
(
A,
B,
C
)
SELECT
k.CustmerName,
SUM(k.AppleQty) AS AQ,
SUM(k.OrangeQty) AS OQ
FROM dbo.Kaimono K
GROUP BY
k.CustmerName —-集計関数に含まれないCustmerNameのみGroup指定
SELECT
#t1.A —–CustmerNameをそのまま取得
(#t1.B + #t1.C) AS TtlQty —–集計されたAppleQty + OrangeQty
FROM #t1
DROP TABLE #t1 —–最後にTemporary Tableを削除
上記のようにTemporary Tableを利用することによって
kaimonoというテーブルにあるAppleQty(りんごの数) とOrageQty(みかんの数)
の総合計を出すことをできるわけです。
ですが、CustmerName(買い物をした人の氏名)が選択されているカラム内(SELECT内)に
あるのでCustmerNameが異なる場合はAppleQtyもOrageQtyも集計対象になりません。
1Select分ではそれぞれの集計は出せても総合計は出せません。
そこでTemporary Tableを利用することで
りんごはりんご、みかんはみかん、それぞれ集計されている値を
集計関数を利用することなく取得、加工できるわけです。
下手くそな説明でもうしわけありません。
興味をもった方はご自分で調べてみて下さい笑