回答編集履歴

1

追記

2020/02/20 00:36

投稿

sazi
sazi

スコア25300

test CHANGED
@@ -1 +1,35 @@
1
1
  年月ごとのテーブルがあるのであれば、それは正規化されていないので(postgresでのパーティションを除く)、動的にSQL文を組み立てる(プログラムでSQL文を生成)しかありません。
2
+
3
+
4
+
5
+ 取り敢えず、現状のSQLを簡潔にするとしたら
6
+
7
+ ```SQL
8
+
9
+ select *
10
+
11
+ from table_A
12
+
13
+ left join (
14
+
15
+ select * from table_B_201911
16
+
17
+ union all select * from table_C_201911
18
+
19
+ union all select * from table_B_201910
20
+
21
+ union all select * from table_C_201910
22
+
23
+ union all select * from table_B_201909
24
+
25
+ union all select * from table_C_201909
26
+
27
+ ) table_B_C
28
+
29
+ on table_A.id = table_B_C.id
30
+
31
+ where table_A.name = 'Sample'
32
+
33
+ ```
34
+
35
+ ※上記のunionしているインラインビュー部分が、正規化または可変になる部分です。