去除时间段重复的查询问题~~求助
查询时怎么去除重复的时间(精确到月)
比如 一个人上班时间记录是
2010-01-01至2010-10-31
2010-08-01至2010-12-31
第2个时间是兼职,这样他就重复了8月-10月,累计查询时他的工作时间就多了几个月
怎么查询才能把重复的时间去除?
create table shijian(uuid VARCHAR2(50),rq_b VARCHAR2(30),rq_e VARCHAR2(30));insert into shijian (UUID, RQ_B, RQ_E)values ('001', '2010-01-01', '2010-10-31');insert into shijian (UUID, RQ_B, RQ_E)values ('002', '2010-08-01', '2010-12-31');select add_months(to_date(substr(rq_b, 1, 7), 'yyyy-mm'),level-1) durationfrom shijian, (select min(rq_b) rq_min, max(rq_b) rq_max from shijian) minmaxwhere shijian.rq_b = minmax.rq_minconnect by level <= months_between(to_date(substr(rq_e, 1, 7), 'yyyy-mm'),to_date(substr(rq_b, 1, 7), 'yyyy-mm'))+1unionselect add_months(to_date(substr(rq_b, 1, 7), 'yyyy-mm'),level-1) durationfrom shijian, (select min(rq_b) rq_min, max(rq_b) rq_max from shijian) minmaxwhere shijian.rq_b = minmax.rq_maxconnect by level <= months_between(to_date(substr(rq_e, 1, 7), 'yyyy-mm'),to_date(substr(rq_b, 1, 7), 'yyyy-mm'))+1;