我希望能够让企业手动将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
如果您还有其他需要,请告诉我。
答案 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;) )
从长远来看,我会创建一个函数,它接受一个分隔的字符串,并将它们转换为行,然后你就可以加入表值函数的结果。