CREATE PROCEDURE 工资性收入 @codes varchar(32) AS DECLARE @A real select @A=sum(isnull([money],0)) from [常住人口务工帐页] where code=@codes select @A GO
@codes varchar(n)n:长度
CREATE PROCEDURE 工资性收入 @codes varchar(50) AS DECLARE @A real,@SQL nvarchar(max) SET @SQL='' SET @SQL=@SQL+'select @A=sum([money]) from 常住人口务工帐页 where code='+CHAR(39)+@codes+CHAR(39) EXECUTE SP_EXECUTESQL @SQL select @A GO
参数的长度写好就没事了varchar(50)
谢谢各位,但是如果把参数的长度写上去,会提示服务器: 消息 409,级别 16,状态 2,过程 工资性收入,行 5 sum or average aggregate 运算不能以 varchar 数据类型作为参数。CREATE PROCEDURE 工资性收入 @codes varchar(32) AS DECLARE @A real select @A=sum(isnull([money],0)) from [常住人口务工帐页] where code=@codes select @A GO
SET @SQL=@SQL+'select @A=sum(cast([money] as dec(18,1)) from 常住人口务工帐页 where code='+CHAR(39)+@codes+CHAR(39)
CREATE PROCEDURE 工资性收入 @codes varchar(32) AS DECLARE @A real select @A=sum(isnull(cast([money] as float),0)) from [常住人口务工帐页] where code=@codes and isnumeric(money)=1 select @A GO
CREATE PROCEDURE 工资性收入
@codes varchar(32)
AS
DECLARE @A real
select @A=sum(isnull([money],0)) from [常住人口务工帐页] where code=@codes
select @A
GO
CREATE PROCEDURE 工资性收入
@codes varchar(50)
AS
DECLARE @A real,@SQL nvarchar(max)
SET @SQL=''
SET @SQL=@SQL+'select @A=sum([money]) from 常住人口务工帐页 where code='+CHAR(39)+@codes+CHAR(39)
EXECUTE SP_EXECUTESQL @SQL
select @A
GO
sum or average aggregate 运算不能以 varchar 数据类型作为参数。CREATE PROCEDURE 工资性收入
@codes varchar(32)
AS
DECLARE @A real
select @A=sum(isnull([money],0)) from [常住人口务工帐页] where code=@codes
select @A
GO
CREATE PROCEDURE 工资性收入
@codes varchar(32)
AS
DECLARE @A real
select @A=sum(isnull(cast([money] as float),0)) from [常住人口务工帐页] where code=@codes and isnumeric(money)=1
select @A
GO
刚学SQL,我觉得我现在是经常纠结与SQL的语法,而不是算法,有时候一个很小的语法问题,一整就是一天,真是痛苦,有什么好的教材?推荐一下。谢谢各位前辈。