我在网上找到了很多关于将多值参数传递给 SSRS 中的钻取报告的帮助。我还没有找到 SSRS 中多个多值参数的成功响应。
为了解释,我有以下总结报告:
SELECT
SH.[USER-ID],
U.[DESCRIPTION] AS "USER NAME",
COUNT (J.[JOB-NO]) AS "NUMBER-OF-JOBS"
FROM
[RM-JOB] AS J
LEFT OUTER JOIN
[RM-STAGE-HISTORY] AS SH ON SH.[JOB-NO] = J.[JOB-NO]
JOIN
[CO-USERS] AS U ON U.[USER-NAME] = J.[RAISED-BY]
LEFT JOIN
[IH-LOCATION] L ON J.[PLACE-REF] = L.[PLACE-REF]
LEFT JOIN
[IH-LOC-ATTR] LA ON J.[PLACE-REF] = LA.[PLACE-REF] AND LA.[ATTRIB-CODE] = 'SBU'
WHERE
J.[DATE-LOGGED] BETWEEN @DATE1 AND @DATE2
AND
SH.[STAGE-CODE] IN ('06')
AND
SH.[STAGE-DATE] BETWEEN @DATE1 AND @DATE2
AND
J.[RAISED-BY] = SH.[USER-ID]
AND
LA.[SUB-ATTRIB-CODE] IN (@SBU)
AND
J.[RAISED-BY] IN (@RAISEDBY)
AND
J.[LATEST-PRIORITY] IN (@Priority)
AND
L.[MGT-AREA] IN (@MGTAREA)
GROUP BY
SH.[USER-ID],
U.[DESCRIPTION]
ORDER BY
U.[DESCRIPTION]
以及以下详细信息报告:
SELECT DISTINCT
J.[RAISED-BY],
J.[JOB-NO],
LEFT(J.[PLACE-REF],3) AS [SCHEME],
J.[PLACE-REF],
L.[MGT-AREA],
LA.[SUB-ATTRIB-CODE] SBU,
J.[JOB-STATUS],
CONCAT(IP.[PRIORITY-CODE], '- ',IP.DESCRIPTION) [INITIAL-PRIORITY],
CONCAT(LP.[PRIORITY-CODE], '- ',LP.DESCRIPTION) [LATEST-PRIORITY],
J.[DATE-LOGGED],
J.[CURRENT-STAGE-CODE],
J.[ORIG-LOGGED-VALUE] AS "LOGGED-VALUE",
J.[TOTAL-VALUE],
J.[SHORT-DESCRIPTION],
J.[CONTRACTOR],
C.[DESCRIPTION],
J.[CL-ANALYSIS-CODE-ELEMENT],
J.[CL_ANALYSIS_CODE_ELEMENT##2],
J.[CL_ANALYSIS_CODE_ELEMENT##3],
J.[CL_ANALYSIS_CODE_ELEMENT##4],
J.[CL_ANALYSIS_CODE_ELEMENT##5],
SH.[JOB-AMENDED]
FROM
[RM-JOB] AS J
LEFT OUTER JOIN
[RM-CONT] as C ON C.CONTRACTOR = J.CONTRACTOR
RIGHT OUTER JOIN
(SELECT
[JOB-NO],
CASE WHEN MAX([STAGE-CODE]) = ('11') THEN 'YES' ELSE 'NO' END AS "JOB-AMENDED"
FROM
[RM-STAGE-HISTORY]
WHERE [STAGE-CODE] IN ('06','11')
GROUP BY [JOB-NO]) AS SH ON J.[JOB-NO] = SH.[JOB-NO]
LEFT JOIN
[RM-PRIORITY] IP ON J.[INITIAL-PRIORITY] = IP.[PRIORITY-CODE]
LEFT JOIN
[RM-PRIORITY] LP ON J.[INITIAL-PRIORITY] = LP.[PRIORITY-CODE]
LEFT JOIN
[IH-LOCATION] L ON J.[PLACE-REF] = L.[PLACE-REF]
LEFT JOIN
[IH-LOC-ATTR] LA ON J.[PLACE-REF] = LA.[PLACE-REF] AND LA.[ATTRIB-CODE] = 'SBU'
WHERE
J.[DATE-LOGGED] BETWEEN @DATE1 AND @DATE2
AND
J.[RAISED-BY] = @RAISEDBY
AND
LA.[SUB-ATTRIB-CODE] IN (@SBU)
AND
J.[LATEST-PRIORITY] IN (@Priority)
AND
L.[MGT-AREA] IN (@MGTAREA)
现在,@Date1、@Date2 和 @RAISEDBY 都是单值并且工作正常,但 @SBU、@Priority 和 @MGTAREA 都是多值。在所有三种情况下,我都将多值参数设置为允许多个值,并且在文本框操作中,我设置了所有三个参数以按照其他地方的建议拆分多个值: =SPLIT(JOIN(Parameters!SBU.Value , ","), ",")
但是,当我为@Priority 或@MGTAREA 选择多个值时,详细信息报告为空白。这是我第一次认为我已经这样做了,我想知道我是否做了任何明显的错误,或者 SSRS 是否甚至可以在同一个钻取中处理三个多值参数。
任何帮助都感激地接受,我一天中的大部分时间都在盯着这个!