僅當狀態= '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的原因? –