如何写一段sql?
rego  costcentername   startdate        enddate
AE70PV	51417 64702	2007-01-01	2007-09-17  
AE70PV	51417 34504	2007-09-18	2100-01-01  
AK11ZS	51417 34501	2007-01-01	2007-09-16  
AK11ZS	51417 XX198	2007-09-17	2100-01-01  
AK83HB	51417 66303	2007-02-27	2007-09-06  
AK83HB	51417 34504	2007-09-07	2100-01-01  
AM77KA	51417 34501	2007-01-01	2007-09-16  
AM77KA	51417 XX198	2007-09-17	2100-01-01  
AP32XJ	51417 27510	2007-06-28	2007-09-12  
AP32XJ	51417 XX232	2007-09-13	2007-09-25  
AP32XJ	51417 27510	2007-09-26	2100-01-01  
AP98XI	51417 64302	2007-06-29	2007-09-17  
AP98XI	51417 64702	2007-09-18	2100-01-01  
AQ23AY	51417 XX254	2007-07-14	2007-09-11  
AQ23AY	51417 27510	2007-09-12	2007-09-25  
AQ23AY	51417 27503	2007-09-26	2100-01-01  
这样一张表中如何通过sql语句把相同rego在指定时间段中所占天数多的数据提取出来(时间段为:2007.9.1~2007.9.30)
如:
rego为:AE70PV, 有两条记录,一条在指定时间段占了16天,一条占了14天,只要把占16天的数据取出就可以了
不知道有那位高手会写这样的sql,谢谢了
------解决方案--------------------SQL code
select
    t.*
from
    表 t
where
    not exists(select 1 from 表 where rego=t.rego and datediff(dd,startdate,enddate)>datediff(dd,t.startdate,t.enddate))
------解决方案--------------------
select a.*
(
 select * , datediff(day,startdate,enddate) 天数 from tb
) a,
(
 select rego , max(天数) 天数 from  
 (  
   select * , datediff(day,startdate,enddate) 天数 from tb
 ) t
 group by rego
) b
where a.rego = b.rego and a.天数 = b.天数