第二和第三多值参数没有通过要钻取报表在SSRS 2012

问题描述 投票:0回答:3

我发现了很多帮助网上关于通过多值参数,在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)

现在,@日期1,@日期2和@RAISEDBY都是单值,做工精细,但@SBU,@priority和@MGTAREA都是多值。在这三种情况下,我已经设置了多值参数允许多个值,并在文本框中行动,我已经将所有三个参数打出多个值与其他地方一样建议:!= SPLIT(JOIN(参数SBU.Value “ ”),“”)

然而,当我选择@priority或@MGTAREA不止一个值,然后详细报告是空白。这是我第一次觉得我已经做到了这一点,如果我做了什么错误明显,还是SSRS甚至可以处理在同一个钻取(三)多值参数我想知道。

任何帮助感激地接受了,我在这确确实盯着大多数一天!

tsql reporting-services ssrs-2012
3个回答
0
投票

如果数据集查询是直接在数据集(即不使用一个存储过程),那么就没有必要做任何SPLIT和/或加入它们的方法。 SSRS将自动注入在您的查询,以替代@参数的逗号分隔的列表。

确保您的参数数据类型的参数属性设置为文本(即使它们是数字)


0
投票

你有没有尝试执行Visual Studio中的详细报告(而不是作为一个子报告)?


0
投票

我找到了解决办法。我试图运行的细节报告的存储过程。无论是反应促使我尝试运行的详细信息报告为客户端代码。它的工作完美的方式。

看来,存储过程报告不喜欢多个多值参数!

© www.soinside.com 2019 - 2024. All rights reserved.