PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
9326 99/11/18 11:40:28 SQLによる疑似クロスタブ(提供) By まこと

カテゴリ:その他
日付:1999年11月18日 11:40 発信者:まこと
題名:SQLによる疑似クロスタブ(提供)

最近、疑似クロスタブの作成方法を考えつきました。

元)
DAY,tanto,data1,data2,data3

作成例)各担当毎に任意の年月で集計した値を横並びにし、管理項目を縦に並べる。
実際には日単位ならC31まで、年ならC12までとなります。
週単位の場合は・・・ どうしたらいいんでしょうねえ?(^o^;)  良い案はありますか?

select 
tanto,
\'管理項目(1)\',
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1,data1,0)),0) \"c01\",
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1 +1,data1,0)),0) \"c02\",
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1 +2,data1,0)),0) \"c03\"
from test1
group by tanto
union
select 
tanto,
\'管理項目(2)\',
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1,data2,0)),0) \"c01\",
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1 +1,data2,0)),0) \"c02\",
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1 +2,data2,0)),0) \"c03\"
from test1
group by tanto
union
select 
tanto,
\'管理項目(3)\',
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1,data3,0)),0) \"c01\",
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1 +1,data3,0)),0) \"c02\",
NVL(sum(DECODE(to_number(to_char(\"DAY\",\'yyyymm\')),:set_day1 +2,data3,0)),0) \"c03\"
from test1
group by tanto
order by tanto

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.