MDX-如何返回多个度量

jos*_*yse 1 sql ssas mdx powerquery powerbi

我正在尝试通过在 Power Query 之前使用 MDX 将 2M 行 SSAS 查询优化到 Power BI。我在 T-SQL 方面有经验,找到了一个网站来帮助将 T-SQL 经验转换为 MDX,这对于某些查询(基本行/列选择、交叉联接、非空、排序依据、过滤器、位置)是成功的。所以现在我想输入包含三个维度和四个度量的销售数据,但出现以下错误:

执行查询... 查询 (3, 1) 'Measures' 层次结构在元组中出现不止一次。运行完成

我尝试了一些与交叉连接度量和维度相关的变体,只选择一个度量(仍然花费太长时间),并指定成员与子项。

'''

 select
    ([Date].[OrderDate].children, [Customer].[CustID].children, [ProdLevel].[ProdNumber].children) on rows,
    ([Measures].[Revenue], [Measures].[Units], [Measures].[ASP], [Measures].[Profit]) on columns
    from [RepProdDB]
    where [ProdLevel].[Prod Description].[MyBusinessUnit]
Run Code Online (Sandbox Code Playgroud)

'''

查找错误:“'Measures' 层次结构在元组中出现不止一次。” 对我来说有点模糊,因为我对元组有轻微但可能不完整的理解。

我希望有一些我可以在数据透视表 OLAP、Power Pivot 和 Power Query 中轻松获得的东西,但使用实际的 MDX 代码。想法?

小智 5

所以你需要了解元组和集合之间的区别。

select
non empty
(
[Date].[OrderDate].children, 
[Customer].[CustID].children, 
[ProdLevel].[ProdNumber].children
) 
on rows,
{
[Measures].[Revenue], 
[Measures].[Units], 
[Measures].[ASP], 
[Measures].[Profit]
} 
on columns
from [RepProdDB]
where 
[ProdLevel].[Prod Description].[MyBusinessUnit]
Run Code Online (Sandbox Code Playgroud)