我在SSRS报告中使用PostgreSQL ODBC数据源。
根据我之前对MS SQL Server数据源的了解,要将可选参数传递给SSRS数据集查询,您可以这样做:
SELECT *
FROM MyTable
WHERE SomeField = @Param1 OR @Param1 IS NULL
关键是使用OR @Param1 IS NULL
,它基本上绕过SomeField = @Param1
部分并有效地充当“可选”过滤器。但是,这在使用PostgreSQL ODBC数据源时似乎不起作用(不确定它是由于Postgres还是ODBC或两者兼而有之)。单击“刷新字段”或执行/预览报告时出现错误。
这可能部分是由于无法将命名参数传递给SQL,而是必须使用“?”像这样:
SELECT *
FROM MyTable
WHERE SomeField = ?
......这使得基本上不可能OR ? IS NULL
。
那么,有谁知道我如何能够将可选参数传递给SSRS中的PostgreSQL数据集?
答案 0 :(得分:2)
不是特定的ODBC解决方案,而是一种解决方法。如果<td>
不能SomeField
:
null
如果select *
from mytable
where somefield = coalesce(?, somefield)
可以是SomeField
,并且您想要返回空值:
null