Предположительно, вы хотите:
update t
set dateAdded = tfrom.dateAdded
from t join
t tfrom
on t.jobid = tfrom.jobid and
t.Code = 'FR1F' and
tfrom.Code = 'W200' ;
Id JobId Code DateAdded
1 100 FR1F 2018-06-22 14:19:57.807
2 100 W2OO 2018-06-22 16:52:53.160
3 101 FR1F 2018-06-22 14:19:57.237
4 101 W2OO 2018-06-22 16:52:53.160
5 102 FR1F 2018-06-22 14:19:48.020
6 102 W2OO 2018-06-22 16:52:53.160
Привет, У меня есть результат запроса, часть которого описана выше с образцом данных.
Запрос выглядит следующим образом:
SELECT
T1.Id
, T2.JobId
, T3.Code
, T1.DateAdded
FROM T1
INNER JOIN T2 ON T1.JobId = T2.JobId
INNER JOIN T3 ON T1.T3Id = T3.Id
WHERE T3.Code = 'W2OO' OR T3.Code = 'FR1F'
У меня есть требование обновить DateAdded Value строк с кодом = 'FR1F' значением DateAdded из строк с кодом = 'W200'
Надеюсь, простая задача для кого-то с умениями SQL намного превосходит мои! Любая помощь с благодарностью получена.
заранее спасибо
РЕДАКТИРОВАТЬ:
Следующее - это то, что я интерпретировал из вашего ответа Гордона, но он меняет 0 строк
BEGIN TRAN
UPDATE JR
SET DateAdded = DATEADD(MS, -3, JRFrom.DateAdded)
FROM [OPC].[dbo].[JobRFI] JR
INNER JOIN [OPC].[dbo].[Job] J ON JR.JobId = J.JobId AND ProjectID = '123'
INNER JOIN [OPC].[dbo].[RFI] R ON JR.RFIId = R.RFIId
JOIN [OPC].[dbo].[JobRFI] JRFrom ON JR.Jobid = JRFrom.Jobid
AND R.RFICode = 'FR1F'
AND R.RFICode = 'W200'
SELECT
JR.JobRFIId
, J.JobId
, R.RFICode
, R.Display
, JR.DateAdded
, DATEADD(MS, -3, JR.DateAdded)
FROM [OPC].[dbo].[JobRFI] JR
INNER JOIN [OPC].[dbo].[Job] J ON JR.JobId = J.JobId AND ProjectID = '123'
INNER JOIN [OPC].[dbo].[RFI] R ON JR.RFIId = R.RFIId
WHERE R.RFICode = 'W2OO' OR R.RFICode = 'FR1F'
ROLLBACK TRAN
Еще раз спасибо за внимание!