CREATE PROCEDURE [compute3]
--定义输出参数
@#2冷却水泵电流 real output---1
AS
--定义存储过程内部变量
declare @a varchar(100),
@i int,
@b varchar(100)
,@sql nvarchar(4000) --这里要定义为nvarchar类型
,@#2冷却水泵电流1 real
--给定义的变量赋初值0
set @#2冷却水泵电流=0
--给定义的内部变量赋初值0set @#2冷却水泵电流1=0
set @i=day(getdate()) --循环取出需要的各值的和
while @i>0
begin
set @a='d'+convert(char(8),getdate()-@i+1,112) --得到时间表名
set @b=convert(char(8),getdate()-@i+1,112)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@a+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
--print @a
--查询数据库中的参数,内部变量=sum(字段名)
set @sql='select
@#2冷却水泵电流1=sum(#2冷却水泵电流) from '+@a+' where 时间='+@b+'0800 or 时间='+@b+'1600 or 时间 ='+@b+'2355' --动态得到表
exec sp_executesql @sql,N'@#2冷却水泵电流 real output ',
@#2冷却水泵电流1 output
--输出内部变量-
set @#2冷却水泵电流=isnull(@#2冷却水泵电流1,0)+@#2冷却水泵电流
set @i=@i-1
end
else
set @i=@i-1
end
GO#2冷却水泵电流 这个是我的字段名称 在过程里这样的字段会有问题吗?谢谢大虾们帮我看看谢谢!!
--定义输出参数
@#2冷却水泵电流 real output---1
AS
--定义存储过程内部变量
declare @a varchar(100),
@i int,
@b varchar(100)
,@sql nvarchar(4000) --这里要定义为nvarchar类型
,@#2冷却水泵电流1 real
--给定义的变量赋初值0
set @#2冷却水泵电流=0
--给定义的内部变量赋初值0set @#2冷却水泵电流1=0
set @i=day(getdate()) --循环取出需要的各值的和
while @i>0
begin
set @a='d'+convert(char(8),getdate()-@i+1,112) --得到时间表名
set @b=convert(char(8),getdate()-@i+1,112)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@a+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
--print @a
--查询数据库中的参数,内部变量=sum(字段名)
set @sql='select
@#2冷却水泵电流1=sum(#2冷却水泵电流) from '+@a+' where 时间='+@b+'0800 or 时间='+@b+'1600 or 时间 ='+@b+'2355' --动态得到表
exec sp_executesql @sql,N'@#2冷却水泵电流 real output ',
@#2冷却水泵电流1 output
--输出内部变量-
set @#2冷却水泵电流=isnull(@#2冷却水泵电流1,0)+@#2冷却水泵电流
set @i=@i-1
end
else
set @i=@i-1
end
GO#2冷却水泵电流 这个是我的字段名称 在过程里这样的字段会有问题吗?谢谢大虾们帮我看看谢谢!!
exec sp_executesql @sql
前,print @sql看看,结果能否粘贴到查询分析器里执行
--用[#2冷却水泵电流]就行了
CREATE PROCEDURE [compute3]
--定义输出参数
@#2冷却水泵电流 real output---1
AS
--定义存储过程内部变量
declare @a varchar(100),
@i int,
@b varchar(100)
,@sql nvarchar(4000) --这里要定义为nvarchar类型
,@#2冷却水泵电流1 real
--给定义的变量赋初值0
set @#2冷却水泵电流=0
--给定义的内部变量赋初值0set @#2冷却水泵电流1=0
set @i=day(getdate()) --循环取出需要的各值的和
while @i>0
begin
set @a='d'+convert(char(8),getdate()-@i+1,112) --得到时间表名
set @b=convert(char(8),getdate()-@i+1,112)
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@a+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
--print @a
--查询数据库中的参数,内部变量=sum(字段名)
set @sql='select
@#2冷却水泵电流1=sum([#2冷却水泵电流]) from '+@a+' where 时间='+@b+'0800 or 时间='+@b+'1600 or 时间 ='+@b+'2355' --动态得到表
exec sp_executesql @sql,N'@#2冷却水泵电流 real output ',
@#2冷却水泵电流1 output
--输出内部变量-
set @#2冷却水泵电流=isnull(@#2冷却水泵电流1,0)+@#2冷却水泵电流
set @i=@i-1
end
else
set @i=@i-1
end
GO