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

我只剩下dataset2加入dataset1, type,locdate得到j_1j_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都有一行,而只有几天的行j_1并且j_2有值。因此,对于结束数据集,j_1对于j_2每个不存在于dataset2.

我的问题:如果没有日期,有没有办法将前一个日期的值放在列中。例如,使用上面的数据集。9-22中不存在dataset2,所以最终结果中会有9-22一行,在j_1and中有 NULL j_2,有没有办法使用 and 的前一个日期的值j_1并将j_2它们放在该行中?

提前感谢您的帮助!

SQL 服务器 2008

4

1 回答 1

2

你可以使用这样的东西来加入当前或以前的日期吗?

SELECT * FROM dataset1 t1 INNER join dataset2 t2 ON t2.date = (select MAX(t3.date) from dataset2 t3 where t3.date <= t1.date)

于 2012-09-21T22:26:13.487 回答