

SQLのテーブルについての質問です。  
【やりたいこと】  
SQL server上で、多数のテーブル（カラム等は同じ）を、全て縦につなげたい  
（UNIONを使ってもいいが、たとえばテーブルが100件あると一つ一つ書くのが面倒に）

【詳細】  
現在、日々のログデータ(Excel, 100000行/day)を  
[20171015]、[20171016]、[20171017]…という名前でExcelシートに保存しており、  
それらのシートを一括でSQL serverにインポートしています。

この方法だと、SQL server上ではテーブルがシートの数だけ（つまり日数分）  
作成されています。

ここから月毎、年単位での分析をするときに、  
一度に読み込めるようそれらのシートをすべて縦に繋げたいのですが

UNION句を使う方法では、シートの数だけUNIONが必要になってしまい、  
非常に書くのが難しく(面倒くさく)なってしまい、見栄えもよくありません。

良い方法をご存じの方がいらっしゃいましたら、お願いします。


CC BY-SA 3.0
2017-10-15T20:35:11.560
38732
2018-09-05T03:06:18.587
25780
question
sql sql-server
SQL serverにて、複数のテーブルを縦方向に連結させたい


> UNION句を使う方法では、シートの数だけUNIONが必要になってしまい、  
>  非常に書くのが難しく(面倒くさく)なってしまい、見栄えもよくありません。

SQL文を直接書くのでなく、マクロなどで生成すればいいのでは？

なお一般的には[パーティション テーブル](https://docs.microsoft.com/ja-jp/sql/relational-
databases/partitions/create-partitioned-tables-and-
indexes)を使用して１つのテーブルのまま分割します。


CC BY-SA 3.0
2017-10-15T22:48:07.280
38734
2017-10-15T22:48:07.280
4236
38732
answer


登録時にテーブルに分割しているのが問題の根本のように感じます。ExcelをCSVなどにエクスポートして一つのテーブルにインポートしてはどうでしょうか。マクロなどを使えば、うまく自動化できると思いますし、毎月クエリを書き換えなくても済みます。


CC BY-SA 4.0
2018-09-05T03:06:18.587
48100
2018-09-05T03:06:18.587
5008
38732
answer