回答編集履歴

1

コード追記

2021/10/27 00:42

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ```sql
14
14
 
15
- SELECT Table1.項目1 AS 項目4, Table1.項目1 AS 項目5, Count(*) AS 項目6
15
+ SELECT a.項目1 AS 項目4, b.項目1 AS 項目5, Count(*) AS 項目6
16
16
 
17
17
  FROM Table1 AS a INNER JOIN Table1 AS b ON a.項目2 = b.項目2
18
18
 
@@ -86,4 +86,52 @@
86
86
 
87
87
  クエリ4つになりましたが、サブクエリを使って一つに纏めることはできます。
88
88
 
89
- が、メンテナンスとか考えたら分けておいた方がいいと思います。
89
+ が、メンテナンスとか考えたら分けておいた方がいいと思いますが、一応、纏めたものの提示しておきます
90
+
91
+
92
+
93
+ ```sql
94
+
95
+ TRANSFORM Sum(QUnion.件数) AS 件数の合計
96
+
97
+ SELECT QUnion.項目4, QUnion.項目5
98
+
99
+ FROM (
100
+
101
+ SELECT 項目4, 項目5, "項目6" AS 列名, 項目6 AS 件数
102
+
103
+ FROM (
104
+
105
+ SELECT a.項目1 AS 項目4, b.項目1 AS 項目5, Count(*) AS 項目6
106
+
107
+ FROM Table1 AS a INNER JOIN Table1 AS b ON a.項目2 = b.項目2
108
+
109
+ WHERE a.項目1<b.項目1
110
+
111
+ GROUP BY a.項目1, b.項目1
112
+
113
+ ) Q1
114
+
115
+ UNION ALL
116
+
117
+ SELECT 項目4, 項目5, "項目7" AS 列名, 項目7 AS 件数
118
+
119
+ FROM (
120
+
121
+ SELECT a.項目1 AS 項目4, b.項目1 AS 項目5, Count(*) AS 項目7
122
+
123
+ FROM Table2 a INNER JOIN Table2 b ON a.項目3 = b.項目3
124
+
125
+ WHERE a.項目1<b.項目1
126
+
127
+ GROUP BY a.項目1, b.項目1
128
+
129
+ ) Q2
130
+
131
+ ) QUnion
132
+
133
+ GROUP BY QUnion.項目4, QUnion.項目5
134
+
135
+ PIVOT QUnion.列名;
136
+
137
+ ```