仅当状态= 'D'且没有其他记录具有相同记录时,才会使用以下数据并在状态表中填充日期时间transaction_id的状态为<>'D',如果'D'记录是选定的记录,我们也需要第一个'D'记录的日期时间。SQL - 试图在发现记录时更新字段,但只有在未发生更新时才会更新字段
DECLARE decision TABLE (
transaction_id NCHAR(1),
event_id INT,
status NCHAR(1) NULL,
statud_date datetime
)
INSERT decision VALUES
('1' , 1 , 'D', '2011-01-01'),
('1' , 2 , 'D', '2011-01-01'),
('1' , 3 , 'A', '2011-01-01'),
('2' , 1 , 'D', '2011-05-01'),
('2' , 2 , 'D', '2011-05-02'),
('2' , 3 , 'D', '2011-05-03'),
('3' , 1 , 'D', '2011-05-05'),
('3' , 2 , 'A', '2011-05-06'),
('3' , 3 , 'C', '2011-05-06'),
('4' , 1 , 'D', '2011-10-01')
DECLARE status TABLE (
transaction_id NCHAR(1),
default_dt datetime
)
INSERT load VALUES
('1' , NULL),
('2' , NULL),
('3' , NULL),
('4' , NULL)
希望得到这样的结果:
1 NULL
2 2011-05-01
3 NULL
4 2011-10-01
+1的测试脚本。 Downvoters,你为什么不解释你的-1的原因? –