Можно ли вставить и обновить в том же запросе?использовать UPDATE и INSERT в том же запросе
ПЕРЕД:
MemberID | SubsID | StartDate | EndDate
------------------------------------------------
1001 | 10 | 2012-12-21 | 2012-12-31
2002 | 10 | 2012-12-22 |
ПОСЛЕ:
MemberID | SubsID | StartDate | EndDate
------------------------------------------------
1001 | 10 | 2012-12-21 | 2012-12-31
2002 | 10 | 2012-12-22 | 2012-04-13
2002 | 10 | 2012-04-13 |
Получить строки:
select * from MemberSubs
where SubsID = 10 and EndDate is null;
Вставка новых строк:
insert into
MemberSubs(MemberID, SubsID, Price, StartDate)
select
MemberID, SubsID, Price, Current Date
from
MemberSubs
where
SubsID = 10
and
EndDate is null
Обновление старых строк:
update MemberSubs
set
EndDate = current date
where
SubsID = 10
and
EndDate is null
and
StartDate < Current Date
Можно ли добиться этого в одном запросе (без использования хранимых процедур или запуска и т.д.)
Спасибо вы.
Duplicate as above - вы ищете инструкцию 'MERGE'. – Yuck
Спасибо за сообщение о заявлении MERGE, но может кто-то, пожалуйста, дать понять, как достичь этого, используя MERGE? Как бы выглядел мой запрос MERGE? Я никогда не использовал MERGE. – MrSimpleMind
Я не понимаю, как MERGE может это решить? Вы уверены, что это можно решить, используя инструкцию MERGE? Я прочитал руководства ibm и другие pdf-файлы и т. Д. Я не могу понять, как сделать обновление и вставить в тот же запрос, это не «обновление или вставка», это «обновление и вставка» (или «вставка и обновление» независимо от того, с какого запроса я начинаю). – MrSimpleMind