我有一个如下数据集:
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
我将dataset2
加入dataset1
type
,loc
和date
j_1
以获取j_2
和{{1} }}
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
只有j_1
和j_2
有值的行。因此,对于结束数据集,对于j_1
中不存在的每个日期,j_2
和dataset2
中将为NULL。
我的问题:如果没有日期,有没有办法将上一个日期的值放在列中。例如,使用上面的数据集。 9-22
中不存在dataset2
,因此最终结果中会有9-22
行,j_1
和j_2
中有NULL,是否存在如何使用上一个日期的j_1
和j_2
的值并将它们放在该行中?
提前感谢您的帮助!
SQL SERVER 2008
答案 0 :(得分:2)
你可以使用这样的东西加入当前或以前的日期吗?
SELECT * FROM dataset1 t1 INNER join dataset2 t2 ON t2.date =(从dataset2 t3中选择MAX(t3.date),其中t3.date< = t1.date)