0

次のようなデータセットがあります。

dataset1:
 **columns:** id  type  loc  x_qty  y_qty  z_qty  j_1   j_2   date
 **row: **   1   fe    32   292    394    112    NULL  NULL  2012-09-21
 **row: **   2   fd    30   298    394    112    NULL  NULL  2012-09-22
 **row: **   3   fc    31   343    394    112    NULL  NULL  2012-09-23

、 、およびに参加dataset2dataset1typelocおよびdateを取得j_1します。j_2

dataset2:
**columns:** id  type  loc  x_qty  y_qty  z_qty  j_1   j_2   date
**row: **    1   fe    32   NULL   NULL   NULL   239   349   2012-09-21
**row: **    2   fe    31   NULL   NULL   NULL   209   319   2012-09-23

私の問題は、dataset1毎日の行があり、値を持つdataset2日の行しかないことです。したがって、最後のデータセットでは、 に存在しないすべての日付にとにNULL が入ります。j_1j_2j_1j_2dataset2

私の質問: 日付がない場合、前の日付の値を列に入れる方法はありますか? たとえば、上記のデータセットを使用します。9-22は に存在しないdataset2ため、最終結果にはと9-22に NULL を持つ行が存在します。前の日付のとの値を使用してその行に入れる方法はありますか?j_1j_2j_1j_2

助けてくれてありがとう!

SQL サーバー 2008

4

1 に答える 1

2

このようなものを使用して、現在または以前の日付と結合できますか?

SELECT * FROM dataset1 t1 INNER join dataset2 t2 ON t2.date = (t3.date <= t1.date の場合、dataset2 t3 から MAX(t3.date) を選択)

于 2012-09-21T22:26:13.487 に答える