create table #rourou
(
f_spbm varchar(50) not null,
f_qcsl float,
)
declare @starttime datetime
declare @endtime datetime
declare @startny varchar(10)
declare @ts int
declare @startday varchar(10)
declare @null varchar(10)
set @starttime='20121022'
set @endtime='20121120'
set @startny=(select left(convert(varchar(10),@starttime,112),6))
set @ts=(select datediff(day,@starttime,@endtime))+1
set @startday=(select convert(varchar(10),@starttime,112))
insert into #rourou exec('select a.f_spbm,isnull(c.f_qcsl+d.f_rhj,0) f_qmsl from tbspda a
left join tb'+@startny+'_yhj c on a.f_spbm=c.f_spbm
left join (select f_spbm,isnull(sum(f_jhsl+f_brsl+f_sysl+f_pssl-f_xssl-f_bcsl-f_shsl-f_phsl),0) f_rhj from tb'+@startny+'_rhj group by f_spbm) d on a.f_spbm=d.f_spbm where datalength(a.f_cwbm)<>0')while @ts>'0'
begin
declare @jsny varchar(10)
declare @jsday varchar(10)
set @jsny=(select left(convert(varchar(10),@starttime,112),6))
set @jsday=(select convert(varchar(10),@starttime,112))
insert into #rourou exec('select f_spbm@ts*isnull(b.f_Jhsl+b.f_Brsl+b.f_Sysl+b.f_Pssl-b.f_Xssl-b.f_Bcsl-b.f_Shsl-b.f_Phsl,0) from tb'+@jsny+'_rhj where b.f_rq=@jsday')
set @starttime=@starttime+1
set @ts=@ts-1
end
select f_spbm,sum(f_qcsl) from #rourou group by f_spbm
drop table #rourou
(
f_spbm varchar(50) not null,
f_qcsl float,
)
declare @starttime datetime
declare @endtime datetime
declare @startny varchar(10)
declare @ts int
declare @startday varchar(10)
declare @null varchar(10)
set @starttime='20121022'
set @endtime='20121120'
set @startny=(select left(convert(varchar(10),@starttime,112),6))
set @ts=(select datediff(day,@starttime,@endtime))+1
set @startday=(select convert(varchar(10),@starttime,112))
insert into #rourou exec('select a.f_spbm,isnull(c.f_qcsl+d.f_rhj,0) f_qmsl from tbspda a
left join tb'+@startny+'_yhj c on a.f_spbm=c.f_spbm
left join (select f_spbm,isnull(sum(f_jhsl+f_brsl+f_sysl+f_pssl-f_xssl-f_bcsl-f_shsl-f_phsl),0) f_rhj from tb'+@startny+'_rhj group by f_spbm) d on a.f_spbm=d.f_spbm where datalength(a.f_cwbm)<>0')while @ts>'0'
begin
declare @jsny varchar(10)
declare @jsday varchar(10)
set @jsny=(select left(convert(varchar(10),@starttime,112),6))
set @jsday=(select convert(varchar(10),@starttime,112))
insert into #rourou exec('select f_spbm@ts*isnull(b.f_Jhsl+b.f_Brsl+b.f_Sysl+b.f_Pssl-b.f_Xssl-b.f_Bcsl-b.f_Shsl-b.f_Phsl,0) from tb'+@jsny+'_rhj where b.f_rq=@jsday')
set @starttime=@starttime+1
set @ts=@ts-1
end
select f_spbm,sum(f_qcsl) from #rourou group by f_spbm
drop table #rourou
解决方案 »
- 急!触发器累加问题! 大虾门请指导!
- SQL2000中,如果每年加入记录有将近100万条,会有些什么问题碰到?
- 如何定期的把数据库中一张表里面的数据导到excel文件中?
- sql server数据库里数据显示不正常的问题
- 这个条件该怎么写?各位大哥拉兄弟一把(????????????)初级菜鸟的初级问题
- 这回在求一句SQL,语句
- sql union order by datetime
- 用户建的表的各字段名称,字段类型,主键等信息是否在某张系统表中能找到?请告诉一下是哪个系统表,多谢!
- 求救,存儲過程更改數據時數據偶爾會除以1000
- 一列转换成多字段的一行,请问用语句如何完成,谢谢。
- 【求助】 多表连接分页查询SQL语句
- 求一个单表查询的sql(结果的列要能动态改变,列数不固定......)
消息 137,级别 15,状态 2,第 1 行
必须声明变量 '@jsday'。
exec('select f_spbm@ts*isnull(b.f_Jhsl+b.f_Brsl+b.f_Sysl+b.f_Pssl-b.f_Xssl-b.f_Bcsl-b.f_Shsl-b.f_Phsl,0) from tb'+@jsny+'_rhj
where b.f_rq='+@jsday')
set @starttime=@starttime+1