将参数传递给DAX查询

时间:2015-09-25 10:52:50

标签: reporting-services dax

我正在使用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参数建立过滤器?

1 个答案:

答案 0 :(得分:2)

您需要更改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有点生锈!