SSRS报告的所有参数

时间:2016-08-16 08:38:34

标签: visual-studio reporting-services parameters

我希望能够让企业手动将USERID输入到参数框中,或者将其留空以使其恢复所有USERID。

我为CUSTOMERID设置了另一个参数,该参数使用数据集来返回客户ID列表。由于USERID的数量,我不想使用相同的解决方案,而是让他们手动输入USERID或将其留空并带回ALL。

SELECT 
    CUSTOMERID,
    CASE 
    WHEN STATUSCODE = 200 THEN 'Successful Logon' 
    ELSE 'Unsuccessful Logon' 
    END as LogonStatus,
    COUNT( * ) COUNTOFACCOUNTS

FROM 
    MA4EQNG.APPLICATIONLOG
WHERE 
    CUSTOMERID in ('"+join(Parameters!CustomerID.Value, "','")+"')
    AND (Cast(DATETIME as Date) >= '"& Format(Parameters!FromDate.Value, "yyyy-MM-dd") & "' 
    AND Cast(DATETIME as Date) <= '" & Format(Parameters!ToDate.Value, "yyyy-MM-dd") & "') 
    AND COMPONENTDESCRIPTION = '/eq/auth/v1/logon'
    AND METHOD = 'POST' 

GROUP BY 
    CUSTOMERID,
    CASE 
        WHEN STATUSCODE = 200 THEN 'Successful Logon' 
        ELSE 'Unsuccessful Logon' 
    END

ORDER BY
CUSTOMERID ASC

如果您还有其他需要,请告诉我。

2 个答案:

答案 0 :(得分:0)

您可以将USERID参数设置为允许空白值,然后在主数据集sql脚本上使用IF条件。

尝试

IF LEN(@USERID)>0
*put the sql script with UserId filter in where clause*
ELSE
*put the sql script WITHOUT UserId filter in where clause*

答案 1 :(得分:0)

通常你只需要在WHERE子句中编写类似的东西。

WHERE isnull(@CustomerID,&#39;&#39;)=&#39;&#39;或(CUSTOMERID in(&#39;&#34; + join(参数!CustomerID.Value,&#34;&#39;,&#39;&#34;)+&#34;&#39;) )

从长远来看,我会创建一个函数,它接受一个分隔的字符串,并将它们转换为行,然后你就可以加入表值函数的结果。

How to split a comma-separated value to columns