0
我正在使用此存储过程,但它导致错误。执行时出错并在存储过程中打印SQL查询
查询是
declare @min int
declare @mnt int
declare @query varchar(MAx)
declare @finmnth int
declare @divid int
declare @finyear nvarchar(max)
set @divid = 0
set @finmnth = 6
set @finyear = '2014-15'
begin
if @finmnth = 3 or @finmnth = 2 or @finmnth = 1
set @min = 13
else
set @min = @finmnth
Set @query = 'select
/* Cummulative Progress */
isNull(CONVERT(DECIMAL(10, 3), SUM(case when month between 4 and '+cast(@finmnth AS varchar)+' and mpryear='+cast(@finyear as nvarchar)+' then (IDA+Govt+Benyfe)/100000 else 0 end),2),0) as CUTMTot
from
MPR
where
(division = '+cast(@Divid as varchar)+' OR '+cast(@Divid as varchar)+' = 0)'
end
exec(@query)
错误是
消息245,级别16,状态1,第1行
转换nvarchar的值 '2013-14' 为数据类型int时 转换失败。
感谢Giorgi其工作正常。非常感谢 – 2015-03-20 07:23:06