日期:2014-05-17  浏览次数:20465 次

SSRS 为什么传进去的参数会出错,好烦躁啊..........
SQL code
ALTER proc [dbo].[usp_rpt_calllist_department] @mth varchar(100),@dep varchar(100)
as
declare 
    @SQL varchar(8000)

create table #1(mth varchar(20) not null,compid varchar(10) null ,depname varchar(20) not null,zhf numeric(18,2) null)
insert #1
select  mth,compid,depname,sum(mtotal) as total from call_list
group by mth,compid,depname
set @sql='
select * from #1 where mth in (' + @mth + ') and depname in ('+@dep+')'
print @sql
exec (@sql)
drop table #1


这个是我的一个存错过程,我在SSRS里面传mth和dep

正常执行的SP的语句是
usp_rpt_calllist_department '''2010-02'',''2010-03''', '''行政人事部'',''安全生产办'''
但是在SSRS里面传进去后就不是这样的了
变成
exec usp_rpt_calllist_department @mth = N'2010-02,2010-03', @dep = N'行政人事部,安全生产办'

该怎么改啊?

------解决方案--------------------
意思就是在@mth 的前后各加一个单引号,然后用--','替换--,


这样就可以达到目的了。