转换/操纵tsql连接的结果

时间:2012-09-21 21:56:39

标签: sql-server tsql

我有一个如下数据集:

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 typelocdate 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_1j_2有值的行。因此,对于结束数据集,对于j_1中不存在的每个日期,j_2dataset2中将为NULL。

我的问题:如果没有日期,有没有办法将上一个日期的值放在列中。例如,使用上面的数据集。 9-22中不存在dataset2,因此最终结果中会有9-22行,j_1j_2中有NULL,是否存在如何使用上一个日期的j_1j_2的值并将它们放在该行中?

提前感谢您的帮助!

SQL SERVER 2008

1 个答案:

答案 0 :(得分:2)

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

SELECT * FROM dataset1 t1 INNER join dataset2 t2 ON t2.date =(从dataset2 t3中选择MAX(t3.date),其中t3.date< = t1.date)