0

我在 SSRS 2008 的查询中有以下代码。

我添加了一个参数,该参数将根据类型组返回项目列表。

当我根据单个类型运行报告时,结果是成功的,但是当我尝试向select all查询添加属性时,没有返回任何结果。

SELECT DISTINCT ItemTable.ItemType
FROM            TABLE INNER JOIN
                         Table.Column ON Table.column= Table.column INNER JOIN
                         Table.column ON Table.column = Table.Column
UNION
SELECT        '--All--' AS Expr1
WHERE        ItemTable.ItemType= @TypeParameter) OR
                         (ItemTable.ItemType= '--All--')

我究竟做错了什么 ?

4

1 回答 1

0

没有要测试的数据集很难判断,但它可能应该是这样的:

SELECT DISTINCT ItemTable.ItemType
FROM            TABLE INNER JOIN
                         Table.Column ON Table.column= Table.column INNER JOIN
                         Table.column ON Table.column = Table.Column
UNION
SELECT        '--All--' AS Expr1
FROM ItemTable
WHERE        ItemTable.ItemType= @TypeParameter OR 
                         @TypeParameter= '--All--'

我已经更改了最后一行 - 以前如果参数是--All--你只返回行ItemType--All--即可能没有)。

您需要对参数本身进行最后一次检查;如果参数是--All--,那是你想要返回所有行的时候。

评论后编辑

在没有工作示例数据的情况下尝试和调试代码是很困难的。

也许是这样的:

SELECT * FROM
(
SELECT DISTINCT ItemTable.ItemType
FROM            TABLE INNER JOIN
                         Table.Column ON Table.column= Table.column INNER JOIN
                         Table.column ON Table.column = Table.Column
UNION
SELECT        '--All--' AS Expr1
) ItemTable
WHERE        ItemType= @TypeParameter OR
                         @TypeParameter= '--All--'
于 2013-09-06T11:55:28.710 回答