繁体   English   中英

具有when子句和输入参数的SSRS SQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM