应该是
现在要求统计每年的时段降水量如 当年12月25日至次年1月5日时间段的降水总量 时段 时段降水总量
1971年12月25日至1972年1月5日 XX
1972年12月25日至1973年1月5日 XX
1973年12月25日至1974年1月5日 XX
...
1999年12月25日至2000年1月5日 XX
现在要求统计每年的时段降水量如 当年12月25日至次年1月5日时间段的降水总量 时段 时段降水总量
1971年12月25日至1972年1月5日 XX
1972年12月25日至1973年1月5日 XX
1973年12月25日至1974年1月5日 XX
...
1999年12月25日至2000年1月5日 XX
解决方案 »
- 求一条Sql语句
- SQL中计数的问题。
- 安装SQL7.0时,没有提示我选择授权模式的画面!!!!!
- sql2000的存储过程返回值
- 这个SQL怎么写啊。值累加(我一晚上没写出来)在线等
- sql2005 新建数据库时没有E盘怎么回事
- 表空间的分配问题
- 我建立的一个对表的某字段求和的视图,当添加一条记录时,视图是否就会将所有记录求一遍和,这样视图是否就有些太慢了。谁能讲一下视图在Sql Server中的执行原理。
- 紧急求助:数据库恢复——系统提示为控制文件中的文件大小超过了物理文件!!!
- 急!!!!!!!
- 用客户端 与 win2000server下的sqlserver企业版 连接不成功
- 触发器怎么样根据数据的内容来有选择的触发?
set nocount on
go
create table #
(
[年] int,[月] int,[日] int,
[降水] float
)
insert #
select 1971,1,1,23.6 union
select 1971,1,2,21.8 union
select 1972,1,2,21.8 union
select 1982,2,22,32.2 union
select 2000,12,31,121--测试
declare @tb table([时段] varchar(30),[时段降水总量] numeric(4,2))
declare @min int,@max int,@sdt datetime,@edt datetime
select @min=min([年]),@max=max([年]) from #while @min<@max
begin
set @sdt=convert(datetime,(convert(varchar,@min)+'-12-25'))
set @edt=convert(datetime,(convert(varchar,@min+1)+'-1-5'))
insert @tb
select convert(varchar,@min)+'年12月25日至'+convert(varchar,@min+1)+'年1月5日',
(select isnull(sum([降水]),0) from # where convert(datetime,(convert(varchar,[年])+'-'+convert(varchar,[月])+'-'+convert(varchar,[日]))) between @sdt and @edt)
set @min=@min+1
end
select * from @tb--删除测试环境
drop table #--结果
/*
时段 时段降水总量
------------------------------ ------
1971年12月25日至1972年1月5日 21.80
1972年12月25日至1973年1月5日 .00
1973年12月25日至1974年1月5日 .00
1974年12月25日至1975年1月5日 .00
1975年12月25日至1976年1月5日 .00
1976年12月25日至1977年1月5日 .00
1977年12月25日至1978年1月5日 .00
1978年12月25日至1979年1月5日 .00
1979年12月25日至1980年1月5日 .00
1980年12月25日至1981年1月5日 .00
1981年12月25日至1982年1月5日 .00
1982年12月25日至1983年1月5日 .00
1983年12月25日至1984年1月5日 .00
1984年12月25日至1985年1月5日 .00
1985年12月25日至1986年1月5日 .00
1986年12月25日至1987年1月5日 .00
1987年12月25日至1988年1月5日 .00
1988年12月25日至1989年1月5日 .00
1989年12月25日至1990年1月5日 .00
1990年12月25日至1991年1月5日 .00
1991年12月25日至1992年1月5日 .00
1992年12月25日至1993年1月5日 .00
1993年12月25日至1994年1月5日 .00
1994年12月25日至1995年1月5日 .00
1995年12月25日至1996年1月5日 .00
1996年12月25日至1997年1月5日 .00
1997年12月25日至1998年1月5日 .00
1998年12月25日至1999年1月5日 .00
1999年12月25日至2000年1月5日 .00*/