[英]SSRS Sql query with when clause and input parameter
我正在尝试使SQL查询在SSRS中工作。 当我在SSRS中执行报告时,将执行此查询。 这是一个选择,仅填充我的数据集。 我想在第一次执行报表时获得日期,然后希望用户能够在需要时输入其他日期,从而需要参数。 这里是 :
Select contrat from contrats ctr,
INNER JOIN structure rs ON rs.id = ctr.id
INNER JOIN structure_members rsm ON rsm.id_structure = rs.id_structure
where
(((Date(ctr.date) = CASE WHEN ? IS NULL THEN Date(Now) END) or
(Date(rs.endDate) = CASE WHEN ? IS NULL THEN Date(Now) END)
GROUP BY crt.contrat
别介意任何语法错误,我只是简化了查询,以至于:这可能吗? 这样的结局可以解决吗?
`CASE WHEN ? IS NULL THEN Date(Now)`
? 是我输入的日期,例如2014-08-04。 如果需要,该值可以为null。 这就是为什么我试图检查它是否为null,然后改为使用Date(now)完成查询。
谢谢你的帮助。
尝试这个:
Select contrat from contrats ctr
INNER JOIN structure rs ON rs.id = ctr.id
INNER JOIN structure_members rsm ON rsm.id_structure = rs.id_structure
where
Date(ctr.date) = ISNULL(?,Today())
or
Date(rs.enddate) = ISNULL(?,Today())
GROUP BY crt.contrat
可以使用ISNULL
来代替CASE
语句,以获取空输入的默认值并在比较中使用它。 如果parameter非null,则比较参数值,否则比较今天的日期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.