在Oracle中为SSRS报告允许多个值

问题描述

我有一个获取数字1到10的查询。此查询正在SSRS报告中使用,以过滤出更大的数据集。

我想知道我们将如何获得“全部”-参数属性选项中有一个“允许多个值”选项,但我认为这只是将数字连接在一起,所以将(1,2,3等),因此我不确定Oracle是否可以处理。

我的查询以获得ContractTypes -1至10:

WITH ContractTypes (ContractType) AS (
                         SELECT -1 FROM dual
                         UNION ALL
                         SELECT ContractType+1 
                         FROM ContractType
                         WHERE ContractType< 10)
SELECT *
FROM ContractTypes 

我的查询以在另一个数据集中获取contractTypes。我不确定是否需要更改此值以拆分字符串以处理多个值。我正在使用-1处理null。

SELECT *
FROM Employee
WHERE contract_type NVL(CONTRACT_TYPE,-1) = :contract_type

我正在使用Visual Studio 2008为我的oracle代码构建报表和pl / sql开发人员。

非常感谢您的帮助:)

解决方法

在使用整数处理ALL时,我通常对ALL使用0来保持简单。

SELECT *
FROM Employee
WHERE (
    contract_type NVL(CONTRACT_TYPE,-1) = :contract_type
    OR :contract_type = 0
    )

如果您不希望使用NULL,则需要将OR更改为

SELECT *
FROM Employee
WHERE (
    contract_type NVL(CONTRACT_TYPE,-1) = :contract_type
    OR (CONTRACT_TYPE IS NOT NULL AND :contract_type = 0)
    )
,

这是我的工作;创建第二列,分别将NULLALL添加到-1和-2。然后,将SSRS中的DisplayFigure列用于过滤器。

    SELECT
           ContractType,CASE WHEN  ContractType = -2 THEN 'All'
                WHEN ContractType = -1 THEN'Null'
                ELSE to_Char(ContractType)  
                END AS DisplayFigure
    FROM ContractTypes 

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...