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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.