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を利用することで
りんごはりんご、みかんはみかん、それぞれ集計されている値を
集計関数を利用することなく取得、加工できるわけです。

下手くそな説明でもうしわけありません。

興味をもった方はご自分で調べてみて下さい笑