これが私のテーブル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] に更新する必要があります。
新しい行を挿入すると、次のようになります
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')
今、私は単一のクエリまたはストアド プロシージャを使用してこれを行いたいと考えています。しかし、私はこれを行う方法がわかりませんか?