create table #你的表 (时间 datetime,液位 numeric(10,1),标志位 bit)
insert #你的表 values('2003-09-13 11:11:11', 19.8 , 1)
insert #你的表 values('2003-09-14 11:13:14', 13.9 , 0)
insert #你的表 values('2003-09-15 11:11:11', 15.8 , 1)
insert #你的表 values('2003-09-16 11:13:14', 10.9 , 0)
select *,0 flag into #b from #你的表
declare @a int
set @a=0
update #b set @a=case when 标志位=0 then @a else @a+1 end,flag=@aselect min(时间) 开始时间,max(时间) 结束时间,sum(case when 标志位=1 then 液位 else -液位 end) 使用量 from #b group by flaggo
drop table #你的表,#b
insert #你的表 values('2003-09-13 11:11:11', 19.8 , 1)
insert #你的表 values('2003-09-14 11:13:14', 13.9 , 0)
insert #你的表 values('2003-09-15 11:11:11', 15.8 , 1)
insert #你的表 values('2003-09-16 11:13:14', 10.9 , 0)
select *,0 flag into #b from #你的表
declare @a int
set @a=0
update #b set @a=case when 标志位=0 then @a else @a+1 end,flag=@aselect min(时间) 开始时间,max(时间) 结束时间,sum(case when 标志位=1 then 液位 else -液位 end) 使用量 from #b group by flaggo
drop table #你的表,#b
这样写!insert into #你的表 select 时间,液位,标志位 from 原来的表 where 时间 between 开始时间 and 结束时间
declare @a int
set @a=0
update #b set @a=case when 标志位=0 then @a else @a+1 end,flag=@aselect min(时间) 开始时间,max(时间) 结束时间,sum(case when 标志位=1 then 液位 else -液位 end) 使用量 from #b group by flagdrop table #b这样就OK了,当然你要把中文部分改为你实际的列名和表名。