Вот структура моей таблицы CustInfo
Cm_ID | Cust_ID | StartDate | EndDate | Status
1 | 1020 | 05/09/2013 | 20/09/2013 | Off
2 | 1027 | 16/09/2013 | **31/12/2099** | **On**
3 | 1020 | 21/09/2013 | 31/12/2099 | On
Я хочу делать это всякий раз, когда я буду вставлять новую строку для Cust_ID=1027. Сначала следует обновить [EndDate] до новой [StartDate], т.е. сегодня, и установить [Status] = 'Off'.
После вставки новой строки это должно выглядеть так
Cm_ID | Cust_ID | StartDate | EndDate | Status
1 | 1020 | 05/09/2013 | 20/09/2013 | Off
2 | 1027 | 16/09/2013 | **30/09/2013** | **Off**
3 | 1020 | 21/09/2013 | 31/12/2099 | On
4 | 1027 | 01/10/2013 | 31/12/2099 | On
Я сделал это, используя 2 разных запроса следующим образом.
Update CustInfo SET EndDate = '30/09/2013' ,Status='Off'
WHERE Cm_ID=(SELECT MAX(Cm_ID) FROM CustInfo WHERE EndDate='12/31/2099' AND Cust_ID=1027)
INSERT INTO CustInfo ([Cust_ID], [StartDate], [EndDate], [CurrentStatus])
VALUES(1027,'01/10/2013','12/31/2099','On')
Теперь я хочу сделать это, используя один запрос или хранимую процедуру. Но я не знаю, как это сделать?