求大家帮忙 去掉重复的天数
我的提个数据表TBTest
有两个字段BeginDate EndDate
现有如下3条记录
2007-1-1 2007-1-10
2007-1-3 2007-1-20
2007-2-1 2007-2-10
我想减去 重复的天数 得到
28天
感谢大家帮助
------解决方案--------------------怎么个去法? 是从BeginDate里去, 还是从EndDate里去?
------解决方案--------------------怎么个减法?
楼主描述清楚一点`
------解决方案--------------------select datediff(d,min(BeginDate),max( EndDate )) from t
------解决方案--------------------你要写一个函数/过程
这个函数将所有日期列出到一个临时表,然后distinct查询日期
假设
循环日期
while @nowdate< @enddate
loop
insert into #t
@nowdate
@nowdate=@nowdate+1
end loop
------解决方案--------------------SQL code
declare @t table(id int identity(1,1),begindate datetime,enddate datetime)
insert @t select '2007-1-1','2007-1-10'
union all select '2007-1-3','2007-1-20'
union all select '2007-2-1 ','2007-2-10'
select
sum(datediff(day,a.begindate,case when a.enddate > b.begindate then b.begindate else a.enddate end)) as diffday
from @t a
outer apply(
select begindate
from @t
where id = a.id + 1)b