求一条sql语句 急!!!!!!!顶者有分
value time
8 02:53:00
5 02:54:00
3 02:55:00
3 02:56:00
7 02:57:00
9 02:58:00
9 02:59:00
6 02:30:00
隔一分钟取一次数据,取到的数据格式如上面所示,其中value为4到7之间的是正常数据,其余为超限数据,我现在想取超限数据的时间长度(分钟),请问该怎么做
------解决方案--------------------没明白楼主的意思
------解决方案--------------------没明白楼主想取哪段时间..
顶下..
------解决方案--------------------楼主先举个例子。
------解决方案--------------------select count(*) from 表
where value <4 or value <7
------解决方案--------------------因为你一条记录就是1分钟,有几条错误的数据应该就是几分钟
------解决方案--------------------你取value不在4到7之间的数据的条数
是不是就是你要的结果??
------解决方案--------------------你可以让你的时间排序,这样能保证你的数据的唯一性,然后将判断条件加到SQL语句中!
------解决方案--------------------不正常数据的总时间吗?
------解决方案--------------------即从不正常数据到正常数据的间隔时间
==>
用游标,累加.
------解决方案--------------------ding xia
------解决方案--------------------没明白
------解决方案--------------------你把数据放在表中
然后 逐行逐条判断
------解决方案--------------------从表中取出所有的超限记录,将其放入临时表。
用游标依次取临时表中的每一条纪录,在表中查找时间大于这条纪录的最近的正常值时间,如果找到 计算两纪录时间差,如果找不到,就查找下一个超限值时间,计算两个超限值的时间差 并跳到新的超限值纪录继续进行以上步骤,并将时间差值加入这次查找的时间值。
把每次得到的时间值记录下来
------解决方案--------------------最简单的方法
select count(*) from tablename where value> 7 or value <4
得出的数据就是你要的分钟数,
------解决方案--------------------或者只用游标一条一条的判断
declare rs cursor for
select * from table
open rs
declare @int int
set @int=0
fetch next from rs into @value,@time
while @@fetch_status = 0
begin
if value <4 or value> 7
@int=@int+1
else
if @int <> 0
begin
print @int
set @int=0
end
fetch next from rs into @value,@time
end
close rs
deallocate rs
------解决方案--------------------dingxia
------解决方案--------------------ls
已说 我顶
------解决方案--------------------应该用between 4 and 7来取范围间的吧
------解决方案--------------------ding xia
------解决方案--------------------进来晃晃!~呵呵!~
------解决方案--------------------select count(*) from tablename where value> 7 or value <4
------解决方案--------------------