回答編集履歴

1

回答内容の詳細を記入

2017/10/23 07:48

投稿

Ryuichi_Yamamot
Ryuichi_Yamamot

スコア11

test CHANGED
@@ -1 +1,45 @@
1
+ 「質問時に間違っていたPIVOTの使い方」
2
+
3
+ 1PIVOTが呼ぶクエリのSelectでエイリアスをつけていた(つけているとエラーが出る)
4
+
5
+ 2PIVOT関数内のfor の後ろには、PIVOTで分類されるデータを持ったカラムを設定する。
6
+
7
+ 2PIVOT関数内のfor の前には、PIVOTで分類されるデータの集計方法を設定する。
8
+
9
+
10
+
11
+ 例えば、以下のように書く。
12
+
13
+ pivot(count(GRADE) for GRADE in ('A' as A ,'B' as B,'C' as C)
14
+
15
+
16
+
17
+ 「PIVOTで集計されたカラムの後ろに別のカラムを足す方法」
18
+
19
+ Pivotで作成したテーブルを丸々Inline selectにして、別のテーブルとJoinさせる。表示するカラムは、一番外側のSELECTで設定する。
20
+
21
+
22
+
23
+ 例:
24
+
25
+ select
26
+
27
+ p.title
28
+
29
+ ,p.A
30
+
31
+ ,p.B
32
+
33
+ ,p.c
34
+
35
+ ,o.other_data
36
+
37
+ from (
38
+
39
+
40
+
1
- 自己解決しまし。直近時間がないた、解決方法は来週記入します。
41
+ PIVOTするためのテーブル(Inline select)
42
+
43
+
44
+
45
+ ) PIVOTTABLE p join OTHERTABLE 0 on (p.pk = o.pk)