0

同じクエリで挿入と更新を実行できますか?

:

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

これを1つのクエリで達成することは可能ですか(ストアドプロシージャやトリガーなどを使用せずに)

ありがとうございました。

4

1 に答える 1