Top / TIPS / 縦展開のテーブルを横展開にする

次のように、縦展開されたテーブル(売上金額テーブル) があります。

コード名称売上金額
00001名称00001011000
00001名称00001021100
00001名称0000103150
00001名称00001042000
00002名称0000201800
00002名称0000202900
00002名称00002031000
00002名称000020420

1年分の売上を月ごとに見たい場合、次のようなテーブルになっていると見やすいですね。
# 長くなるので、1月から4月までとします。

コード名称1月2月3月4月
00001名称00001100011001502000
00002名称00002800900100020

このようにテーブルを扱うときは、DECODE を使うとよいでしょう。

このような集計を、クロス集計といいます。

SELECT コード, 名称
    ,SUM(DECODE(月,1,売上金額, 0)) 第1月
    ,SUM(DECODE(月,2,売上金額, 0)) 第2月
    ,SUM(DECODE(月,3,売上金額, 0)) 第3月
    ,SUM(DECODE(月,4,売上金額, 0)) 第4月
       FROM 売上金額テーブル
       GROUP BY コード, 名称

項目名の先頭に全角数字を使えないので、「第」をつけてます。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2009-10-25 (日) 23:56:02 (2920d)