SSMS 中的 DAX 与 Excel 中的数据透视表

DAX in SSMS vs PivotTable in Excel

我有一个表格模型,其中建立了一些 M:M 关系。我创建了一个度量,它执行类似 M_A = CALCULATE(DISTINCTCOUNT('TableA'[ColA1])) 的操作。当我使用 DimDate 列、TableB 和 TableC 列时,此度量在数据透视表 table 中切片得很好。

但是,当我尝试在如下所示的 SSMS 中发出 DAX 查询时,它给了我一个错误。

EVALUATE(

SUMMARIZE

    (
        FILTER(DimDate,[ColDate3]>VALUE("1/1/2016"))
        ,[ColDate1]
        ,[ColDate2]
        ,[ColB1] --OR [ColC1] for that matter
        ,"SomeName"
        ,[M_A]
    )
))ORDER BY [ColDate1],[ColDate2] DESC `

我不明白的是 excel 如何通过所有 DimDate、TableB 和 TableC 列对这个度量进行切片,但是当我 运行 以上查询时,这是我从 ssms 得到的消息。

正在执行查询... 查询 (1, 9) 在输入 table 中找不到 'SUMMARIZE' 函数中指定的列 'ColB1'。 运行 完成

有没有办法让我 运行 一个探查器并拦截 excel pivot table 传递给 dax 引擎的内容,这样我就可以在 ssms 上复制查询并了解我的内容构建查询时做错了吗?

非常感谢您的帮助!

是的,运行 sql 分析器,仅连接到分析服务而不是下拉列表中的数据库引擎;但是,跟踪将捕获 MDX 语句而不是 DAX,因为 Excel 通过 MDX 与 SSAS 对话。如果您从 power bi 桌面执行相同的操作并进行跟踪,您将在 DAX 中获得查询。

您还可以安装 OLAP Pivot Table Extensions,它将告诉您 MDX 查询 Excel 正在针对给定数据透视表 table.

发送到 SSAS