PIVOTのinに指定するグループ化対象列の値をどうにかして動的に変更できないでしょうか。
例えば、テーブルもしくはSELECT結果の項目として。
ユーザ、年月、売上
というものになってるとします。
それをPIVOTを使用して、
縦軸にユーザ、横軸に年月、値は売上のサマリーを用いたいです。
ただし、PIVOTのinにはグループ化対象列の値を直接入れる必要があると思ってます。
(for 年月 in ('201608','201609','201610') のような形で。)
ただ、年月の最大値はどんどん増えるので値を指定してしまうと
都度の変更が必要となるのでそれをどうにか出来ないか。というものです。
inの中の値を生成するfunctionを考えましたが、
複数の値を返すfunctionとなるとどーしてもtypeの型で返してしまうのでダメですよね・・・?
何かいい方法ないでしょうか。
-------追記---------
oracle
1create table test1 2( 3 item1 varchar2(10), 4 item2 varchar2(10), 5 item3 int 6) 7insert into test1 VALUES('A','2015',10) 8insert into test1 VALUES('A','2015',11) 9insert into test1 VALUES('A','2016',12) 10insert into test1 VALUES('A','2016',13) 11insert into test1 VALUES('B','2015',20) 12insert into test1 VALUES('B','2015',21) 13insert into test1 VALUES('B','2016',22) 14insert into test1 VALUES('B','2016',23)
例えばこのようなデータがあったとき。
やりたいことをSELECTで記載すると以下のようになります。
oracle
1select * 2from test1 3pivot (sum(item3) for item2 in('2015','2016'))
この時にinの中の文字列を直書きではなくしたいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/21 02:04
2016/09/21 02:19 編集
2016/09/21 02:48
2016/09/21 04:41
2016/09/21 05:06
2016/09/21 05:22 編集