如何通过写sql存储过程计算第一个的结束时间和第二个的开始时间(数据量很大)

在时间表里通过存储过程实现第一个的结束时间和第二个的开始时间,不是第一条数据的开始和结束时间。是第一个和第二个之间差。满意悬赏500... 在时间表里通过存储过程实现第一个的结束时间和第二个的开始时间,不是第一条数据的开始和结束时间。是第一个和第二个之间差。满意悬赏500 展开
 我来答
匿名用户
2013-08-13
展开全部
先做个不受那么多限制的,这个ID不用是必须步长为1的可以中间有缺少的。呵呵是这个意思吗?
select *,DATEDIFF(day,结束时间,下条的开始时间) as 时间差 from
(select *
,(select top 1 开始时间 from test z where z.ID>a.ID order by ID) as 下条的开始时间
from test a
)b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-13
展开全部
sql源码如下:(虽然功能已经实现,但是有一个弊端,就是id必须是一组等差数列,并且步长必须为1)
select id,starttime as '开始时间',endtime as '结束时间' from test;
select t.id,t.endtime as '第n行结束时间',t1.starttime as '第n+1行开始时间',DATEDIFF(day,t.endtime,t1.starttime) as '时间差'from test t inner join
(select * from test where id not in (select top 1 id from test)) t1
on t1.id-1=t.id

结果显示如图:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太平岁年丰9
2013-08-12 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1088万
展开全部
要学会问问题,你说的不是很清楚,让别人无法回答,可能问题只有你自己清楚,你能举个例子说明一下你的问题吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-13
展开全部
把时间表的表结构放上来看看嘛!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式