我有一个表下列: 1. USER_ID 2. Work_Date如何获取表中序列天的开始日期和结束日期?
create table Test_Seq(user_id number, work_date date);
它具有以下数据:
insert into Test_Seq values (1, '01-SEP-2013');
insert into Test_Seq values (1, '02-SEP-2013');
insert into Test_Seq values (1, '06-SEP-2013');
insert into Test_Seq values (1, '09-SEP-2013');
insert into Test_Seq values (1, '10-SEP-2013');
insert into Test_Seq values (2, '10-SEP-2013');
insert into Test_Seq values (2, '26-SEP-2013');
insert into Test_Seq values (2, '30-SEP-2013');
insert into Test_Seq values (2, '01-OCT-2013');
此表存储work_date用户。此工作日期可能会或可能不会按顺序进行。
还有一个表:
create table temp_holidys (holiday date);
insert into temp_holidys values ('27-SEP-2013');
insert into temp_holidys values ('31-DEC-2013');
我需要查询/ PL SQL来获得最后Work_Date(按降序排列)及其相关序列的开始日期;星期六和星期日将不会有任何记录,但仍将按顺序处理(日历日期)。
与我们将Sat和Sun作为序列的一部分对待相同,如果该日在temp_holidys表(请参见下面的#2)中,它也应按顺序处理一天。
- 对于USER_ID 1,本应该给我'10 -sep-2013' 为结束日期和'06 -sep-2013' 作为起始日期
- 对于USER_ID 2,本应该给我01 -OCT -2013'作为结束日期并且'26 -SEP-2013'作为开始日期(2013年10月27日需要按照在temp_holidys表中定义的顺序进行处理)
- 它必须是序列含义,例如在#1中,对于用户标识1,如果'09 -SEP-2013'没有记录,则应为开始日期返回'10 -SEP-2013'。同样在#2中,对于用户2,如果'26 -SEP-2013'上没有记录,则应该为开始日期返回30-SEP-2013'。
你能描述更多的第三条件吗? –
所需的输出是这样吗? 1,'01 -SEP-2013','02 -SEP-2013'*** 1,'06 -SEP-2013','10 -SEP-2013'*** 2,'10 -SEP-2013', '10 -SEP-2013'*** 2,'26 -SEP-2013','01 -OCT-2013' –
请根据样本数据添加所需的输出。 –