允许 Oracle 中的多个值用于 SSRS 报告
Allow muliple values in Oracle for an SSRS report
我有一个获取数字 1 到 10 的查询。此查询正在 SSRS 报告中用于筛选出更大的数据集。
我想知道我们将如何获得 'ALL' - 参数属性选项中有一个 'allow multiple values' 选项,但我认为这只是将数字连接在一起所以是 (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
我查询获取另一个数据集中的合同类型。我不确定是否需要将其更改为拆分字符串以处理多个值。我正在使用 -1 来处理空值。
SELECT *
FROM Employee
WHERE contract_type NVL(CONTRACT_TYPE, -1) = :contract_type
我正在使用 visual studio 2008 构建我的报告,并使用 pl/sql 开发我的 oracle 代码。
提前感谢大家的帮助:)
在使用整数处理 ALL 时,我通常使用 0 来表示 ALL 以保持简单。
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)
)
这是我的解决方法;创建第二列,将 NULL
和 ALL
分别添加到 -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 到 10 的查询。此查询正在 SSRS 报告中用于筛选出更大的数据集。
我想知道我们将如何获得 'ALL' - 参数属性选项中有一个 'allow multiple values' 选项,但我认为这只是将数字连接在一起所以是 (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
我查询获取另一个数据集中的合同类型。我不确定是否需要将其更改为拆分字符串以处理多个值。我正在使用 -1 来处理空值。
SELECT *
FROM Employee
WHERE contract_type NVL(CONTRACT_TYPE, -1) = :contract_type
我正在使用 visual studio 2008 构建我的报告,并使用 pl/sql 开发我的 oracle 代码。
提前感谢大家的帮助:)
在使用整数处理 ALL 时,我通常使用 0 来表示 ALL 以保持简单。
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)
)
这是我的解决方法;创建第二列,将 NULL
和 ALL
分别添加到 -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