我想使用第一个Null之前的值替换每个代码组的NULL值:
code amount date
-------------------------------
A 1500 2013-02-03
A 1800 2013-03-05
A 1300 NULL
A 1300 NULL
B 1300 2013-05-03
B 1300 2013-06-01
B 1300 2013-07-02
B 1600 NULL
B 1300 NULL
C 1200 2014-07-02
C 1500 2014-08-05
C 1700 NULL
C 1100 NULL
C 1300 NULL
在此表中,我想将NULL
值替换为每个"代码"的日期。具有该代码的最后日期值。例如代码A的日期应如下所示,其他日期相同。
code amount date
-----------------------------
A 1500 2013-02-03
A 1800 2013-03-05
A 1300 2013-03-05
A 1300 2013-03-05
我知道这个问题有其他类似的帖子,但没有一个给我上面的结果。我想因为为每个特定代码选择最后一个值有点棘手。
答案 0 :(得分:2)
怎么样?
UPDATE mytable
SET date = date2
FROM mytable o
CROSS APPLY
(SELECT MAX(date) date2 FROM mytable i WHERE i.id=o.id group by id) ii
where o.date is null