(SQL SERVER 2008) マスター/ベース テーブルに結合するために、複数のテーブルにタイムスタンプ付きのレコードがあります。タイムポイントがベース テーブルと等しい場合もあれば、そうでない場合もあります。
テーブルを作成するコード:
create table base (time float);
create table table2 (time float, val2 char(1));
create table table3 (time float, val3 int);
insert into base values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
insert into table2 values (1, 'a'),(5, 'z'),(6, 'm'),(9, 'b');
insert into table3 values (1.5, 1),(5.3, 10),(5.5, 0),(8.1, 4);
結果セットは、ベース テーブルからのレコードごとに 1 行であり、他のテーブルからの "最新" の値である必要があります。以前は、これらのテーブルは Excel で Vlookup を TRUE に設定して "結合" していました。
最終結果は次のようになります。
time | val2 | val3
1 | a | NULL
2 | a | 1
3 | a | 1
4 | a | 1
5 | z | 1
6 | m | 0
7 | m | 0
8 | m | 0
9 | b | 4
10 | b | 4
これを SQL ステートメントで複製するにはどうすればよいですか?
再生中のレコードは 100 までしかないため、ここでは効率より読みやすさを重視します。