Activity
とのような列を持つasというテーブルがactivity_id
ありactivity_date
ます。
以下のようなアクティビティテーブルのデータを考えてみましょう。
activity_id activity_date
1 1st June
2 1st July
3 1st August
4 1st September
5 1st October
アクティビティ3の日付を変更したいのですが、他のアクティビティがすでにあるため、日付を変更することはできません1st July
。1st September
アクティビティ3の有効な日付は〜の間のみ2nd July
です30th August
。
同様に、アクティビティ1の場合、有効な新しい日付は。より前の任意の日付にすることができます1st July
。
同様に、アクティビティ5の場合、有効な新しい日付は2nd September
、最後のアクティビティとしての将来の任意の日付までの範囲になります。
新しい日付が範囲内にない場合は、フロントエンドのユーザーに検証メッセージを送信する必要があります。 クエリへの入力は、アクティビティIDと新しいアクティビティ日付になります。
以下はDDLスクリプトです
CREATE TABLE "HEADCOUNT"."ACTIVITY"
( "ACTIVITY_ID" NUMBER(*,0) NOT NULL,
"ACTIVITY_DATE" DATE
);
Insert into "HEADCOUNT"."ACTIVITY" (ACTIVITY_ID,ACTIVITY_DATE) values (1,'01-06-2012');
Insert into "HEADCOUNT"."ACTIVITY" (ACTIVITY_ID,ACTIVITY_DATE) values (2,'01-07-2012');
Insert into "HEADCOUNT"."ACTIVITY" (ACTIVITY_ID,ACTIVITY_DATE) values (3,'01-08-2012');
Insert into "HEADCOUNT"."ACTIVITY" (ACTIVITY_ID,ACTIVITY_DATE) values (4,'01-09-2012');
Insert into "HEADCOUNT"."ACTIVITY" (ACTIVITY_ID,ACTIVITY_DATE) values (5,'01-10-2012');