Create procedure temp
(
@MID smallint
)
as
Begin
select TranID,
[MonthValue]=(CASE WHEN @MID=1 THEN Jan
WHEN @MID=2 THEN Feb
WHEN @MID=3 THEN Mar
WHEN @MID=4 THEN Apr
WHEN @MID=5 THEN May
WHEN @MID=6 THEN Jun
WHEN @MID=7 THEN Jul
END)
FROM
TblTran as M
where TranID=1 and
M.Month = @MID
end
这是一个带有参数@MID 的存储过程,我使用它来使用SSRS 生成报告。
如果将单个值传递给参数,则它可以正常工作。
例如-
交易表
TranID | Apr | May | Jun | Jul
1 | 50 | 30 | 11 | 30
2 | 51 | 39 | 100 | 30
如果我执行
Exec 4
结果是我所期望的
TranID | MonthValue
1 | 50 **-- ie Aprils value**
但是我需要将多个值传递给参数,
例如
exec 4,5,6
和期望的结果应该是
TranID | MonthValue
1 | 50,30,11 ***-->Comma Separated values of columns
我怎样才能达到这样的结果?