在 DAX、ssrs 中作为输入参数列出
List as input parameter in DAX, ssrs
在另一个 Stack Overflow 问题中,我得到了以下代码,使用 DAX 查询根据 SSRS 报告中的输入参数提取正确的数据集。
EVALUATE
(
CALCULATETABLE
(
ADDCOLUMNS (
'Case',
"Casenumber", RELATED( 'Casedetails'[Casenumber]),
"Casetitle", RELATED('Casedetails'[Casetitle]),
"Date", RELATED ( 'Casedates'[Shortdate]),
"Caselink", RELATED ( 'Casedetails'[Caselink]),
"Place", RELATED('Geography'[Place])
),
//insert filters here
'Casedates'[Shortdate] = @Date,
'Geography'[Place] = @Place
)
)
但是,用户应该并且能够select 所有地点 (@Place)。使用当前代码执行此操作会出现以下错误:
Cannot convert value '{20030, 20377, 20361..' of type Text to type Number.
因此,该参数本质上是一个数字列表。正如我所发现的,DAX 没有 "IN" 运算符,那么我该如何处理这种情况?
这做起来有点棘手,我还没有尝试过。然而,快速 google 搜索会带来一些不错的结果。这篇由 Chris Webb 撰写的特别博客非常全面且很有帮助。您需要调整 DAX 表达式以使用 pathcontains DAX 函数,您还需要将 SSRS 参数更改为多参数并进行一些字符串操作。看这里http://blog.crossjoin.co.uk/2012/06/01/handling-ssrs-multi-valued-parameters-in-dax-queries/
在另一个 Stack Overflow 问题中,我得到了以下代码,使用 DAX 查询根据 SSRS 报告中的输入参数提取正确的数据集。
EVALUATE
(
CALCULATETABLE
(
ADDCOLUMNS (
'Case',
"Casenumber", RELATED( 'Casedetails'[Casenumber]),
"Casetitle", RELATED('Casedetails'[Casetitle]),
"Date", RELATED ( 'Casedates'[Shortdate]),
"Caselink", RELATED ( 'Casedetails'[Caselink]),
"Place", RELATED('Geography'[Place])
),
//insert filters here
'Casedates'[Shortdate] = @Date,
'Geography'[Place] = @Place
)
)
但是,用户应该并且能够select 所有地点 (@Place)。使用当前代码执行此操作会出现以下错误:
Cannot convert value '{20030, 20377, 20361..' of type Text to type Number.
因此,该参数本质上是一个数字列表。正如我所发现的,DAX 没有 "IN" 运算符,那么我该如何处理这种情况?
这做起来有点棘手,我还没有尝试过。然而,快速 google 搜索会带来一些不错的结果。这篇由 Chris Webb 撰写的特别博客非常全面且很有帮助。您需要调整 DAX 表达式以使用 pathcontains DAX 函数,您还需要将 SSRS 参数更改为多参数并进行一些字符串操作。看这里http://blog.crossjoin.co.uk/2012/06/01/handling-ssrs-multi-valued-parameters-in-dax-queries/