将参数传递给 DAX 查询

Pass parameter to DAX query

我正在使用 DAX 查询为报告服务报告建立数据集。我想使用参数以便用户可以过滤日期和位置,但我不知道应该如何将这些变量传递给我的 DAX 表达式。

这是我用于检索数据集的 DAX 查询:

EVALUATE
(
ADDCOLUMNS (  
    'Case',
    "Casenumber", RELATED( 'Casedetails'[Casenumber]),
    "Casetitle", RELATED('Casedetails'[Casetitle]),
    "Date", RELATED ( 'Casedates'[Shortdate]),
    "Caselink", RELATED ( 'Casedetails'[Caselink]),
    "Place", RELATED('Geography'[Place])
    )
)

如何根据参数@Date和@Place建立过滤器?

您需要更改 DAX 查询以使用 calculatetable 函数。此函数接受过滤第一个参数的第二个参数。请参阅下面的示例代码:

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
    )
)

然后您需要像在 SSRS 中一样在查询设计器中添加参数。您还需要像往常一样在全局报告级别添加参数。我假设您已经知道需要在查询设计器中使用 DMX 选项才能在 SSRS 中执行 DAX。

让我知道这是否有效,我的 DAX 有点生疏了!