【发布时间】:2015-05-22 11:36:30
【问题描述】:
我正在使用这个存储过程,但它会导致错误。
查询是
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 时转换失败。
【问题讨论】:
标签: sql sql-server stored-procedures