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
이 매개 변수는 SSRS를 사용하여 보고서를 생성하는 데 사용하는 @MID 매개 변수가있는 저장 프로 시저입니다.
단일 값이 매개 변수로 전달되면 제대로 작동합니다. 예 -여러 값을 전달하여 CSV 출력을 얻으십시오.
트랜잭션 테이블
는
TranID | Apr | May | Jun | Jul
1 | 50 | 30 | 11 | 30
2 | 51 | 39 | 100 | 30
내가
Exec 4
결과로 실행하면 내가 기대하는 것입니다
TranID | MonthValue
1 | 50 **-- ie Aprils value**
하지만 I 파라미터
exec 4,5,6
등
에 여러 값을 통과해야하고, 원하는 결과는이 같은 결과 acheive하는 방법
TranID | MonthValue
1 | 50,30,11 ***-->Comma Separated values of columns
되어야 ??
그래서 당신은 입력과 같은 순서로 주문해야합니다, 쉼표로 분리 된 목록에서 출력을해야합니까? 예 : 7, 5, 4를 합격하면 30,30,50의 출력을 기대 하시겠습니까? 그렇지 않으면 달 단위로 주문할 수 있습니까 (50, 30, 30)? –
또한 매년 1 년 동안 테이블이 있습니까? 누군가가 11,12,1에 합격하면 두 트랜잭션 테이블을 통해 쿼리를 분할해야합니까? –