select convert(varchar(10),sum(sumrainfall) as sumrainfall
from (
select dateadd(hh,-8,sumrveytime) as sumrveytime, sumrainfall from data) t
group by convert(varchar(10)
having sum(sumrainfall)>0
from (
select dateadd(hh,-8,sumrveytime) as sumrveytime, sumrainfall from data) t
group by convert(varchar(10)
having sum(sumrainfall)>0
select convert(varchar(10),sumrveytime,120) as sumrveytime,sum(sumrainfall) as sumrainfall
from (
select dateadd(hh,-8,sumrveytime) as sumrveytime, sumrainfall from data) t
group by convert(varchar(10),sumrveytime,120)
having sum(sumrainfall)>0
select count(*) from tb where sumrainfall > 0
不过,你写这个好像有点问题,sumrainfall是个总量,我想只有用第二天减去第一天的才的到的结果的。
(
select * , val = sumrainfall - isnull((select top 1 sumrainfall from tb where sumrveytime < t.sumrveytime order sumrveytime desc),0) from tb t
) m
where val > 0