У меня (упрощенно для этого примера) TableA с полями Id, Speed и Description.Таблица B содержит модификации таблицы A.Таблица B содержит Id (FK, поэтому будет соответствовать Id в TableA), полях ModifiedSpeed и OriginalSpeed.
По сути, я бы хотел иметь возможность обновить либо TableA Speed, либо TableB OriginalSpeed в пределах одного оператора, основываясь на том, есть ли в TableB запись, относящаяся к TableA.
Вот то, что я пробовал до сих пор, надеюсь, это даст некоторое представление о том, чего я хочу, поскольку я не уверен, что объясняю это очень хорошо:
SELECT a.Id, a.Description, a.Speed, CASE
WHEN EXISTS(SELECT b.Id FROM TableB b WHERE b.Id = a.Id) THEN
UPDATE TableB SET OriginalSpeed =
CASE
WHEN (a.Speed is not null) THEN a.Speed
WHEN a.Description = 'Motorway' THEN 70
WHEN a.Description = 'A Road' THEN 60
ELSE 30
END
ELSE
UPDATE TableA SET Speed =
CASE
WHEN (a.Speed is not null) THEN a.Speed
WHEN a.Description = 'Motorway' THEN 70
WHEN a.Description = 'A Road' THEN 60
ELSE 30
END
END
FROM TableA a
Любая помощь будетоценили.