1

日付で結合して並べ替えたいイベントを含む2つのテーブルがあり、レポートのためにレコードをグループ化できる結果の値が必要です-この場合code2

CREATE TABLE #tbl1 (code1 INT, codeDate DATETIME, code2 INT)
CREATE TABLE #tbl2 (code1 INT, codeDate DATETIME, code2 INT )

INSERT INTO #tbl1 VALUES( 1, '01 jan 2013 12:00:00', 123)
INSERT INTO #tbl1 VALUES( 2, '01 jan 2013 14:00:00', 123)
INSERT INTO #tbl1 VALUES( 1, '01 jan 2013 15:00:00', 234)
INSERT INTO #tbl1 VALUES( 2, '01 jan 2013 18:00:00', 234)

INSERT INTO #tbl2 VALUES( 10, '01 jan 2013 12:10:00', 0)
INSERT INTO #tbl2 VALUES( 20, '01 jan 2013 13:20:00', 0)
INSERT INTO #tbl2 VALUES( 10, '01 jan 2013 15:10:00', 0)
INSERT INTO #tbl2 VALUES( 20, '01 jan 2013 16:20:00', 0)

SELECT * FROM #tbl1 UNION SELECT * FROM  #tbl2  ORDER BY CODEDATE

戻り値

code1   codeDate                    code2
1       2013-01-01 12:00:00.000     123
10      2013-01-01 12:10:00.000     0
20      2013-01-01 13:20:00.000     0
2       2013-01-01 14:00:00.000     123
1       2013-01-01 15:00:00.000     234
10      2013-01-01 15:10:00.000     0
20      2013-01-01 16:20:00.000     0
2       2013-01-01 18:00:00.000     234

更新する列の値を取得したいcode2ので、tbl1 の日付値の間にある tbl2 レコードに tbl1 のcode2値が含まれます。(結果の行 2、3、6、7) 例:

code1   codeDate                    code2
1       2013-01-01 12:00:00.000     123
10      2013-01-01 12:10:00.000     123
20      2013-01-01 13:20:00.000     123
2       2013-01-01 14:00:00.000     123
1       2013-01-01 15:00:00.000     234
10      2013-01-01 15:10:00.000     234
20      2013-01-01 16:20:00.000     234
2       2013-01-01 18:00:00.000     234

これは可能ですか、UNIONそれとも別のアプローチが必要ですか?

4

1 に答える 1