У меня есть столбец в 'tableA', который я хотел бы обновить с помощью результата следующего запроса. По сути, 5-й столбец даты будет максимальной датой из 4 других столбцов в той же строке.
select
Case
when date1 >= date2 and date1 >= date3 and date1 >=date4 then date1
when date2 >= date1 and date2 >= date3 and date2 >=date4 then date2
when date3 >= date1 and date3 >= date2 and date3 >=date4 then date3
when date4 >= date1 and date4 >= date2 and date4 >=date3 then date4
End as Date5
from
tableA
Однако я не могу получить правильный синтаксис в операторе update, поскольку я получаю либо ошибку с несколькими строками, либо ошибку другого типа. например
update tableA a
set Date5 = (
select
Case
when date1 >= date2 and date1 >= date3 and date1 >=date4 then date1
when date2 >= date1 and date2 >= date3 and date2 >=date4 then date2
when date3 >= date1 and date3 >= date2 and date3 >=date4 then date3
when date4 >= date1 and date4 >= date2 and date4 >=date3 then date4
End as Date5
from
tableA b)
where A.ID = B.ID
Спасибо за любую помощь!
Обновление ниже
После еще одного исследования я решил найти другое решение для получения максимальной даты, например
Select Max(dDate) maxDate, ID
From tableA
Unpivot (dDate FOR nDate in (Date1, Date2, Date3)) as u
Group by ID
К сожалению, это означает, что мой первоначальный вопрос все еще остается в силе, т.е. как вы объедините вышеуказанный запрос как подзапрос в обновлении.