我有一个名为 as 的表,其中包含和Activity
等列。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');