Powerbi MDX作为KeepFilter的等效概念

Powerbi MDX作为KeepFilter的等效概念,powerbi,dax,mdx,Powerbi,Dax,Mdx,我们使用的是一个多维立方体,它的视觉层是power bi,我对一个应该很简单的度量有一些问题,但是我不太了解mdx/multidim 如何获得与MDX度量相同的结果(对于contoso db)(我可以在power bi中以等效方式使用该度量): 我有一个可以产生正确结果的工作度量,但如果power bi表中显示了更多维度,则速度太慢: Create Member Currentcube.[Measures].[Sales Amount red Products] as iif( ( [

我们使用的是一个多维立方体,它的视觉层是power bi,我对一个应该很简单的度量有一些问题,但是我不太了解mdx/multidim

如何获得与MDX度量相同的结果(对于contoso db)(我可以在power bi中以等效方式使用该度量):

我有一个可以产生正确结果的工作度量,但如果power bi表中显示了更多维度,则速度太慢:

    Create Member Currentcube.[Measures].[Sales Amount red Products]
as iif(  ( [Measures].[Sales Amount],[Product].[Color].&[Red]) <> 0 
        AND ([Product].[Color].currentmember is [Product].[Color].&[Red] 
    OR [Product].[Color].currentmember is [Product].[Color].[all]) ,
([Measures].[Sales Amount],[Product].[Color].&[Red] ) ,NULL)
创建成员Currentcube.[Measures].[Sales Amount red Products]
作为iif(([度量值][销售额],[产品][颜色]和[红色])0
和([Product].[Color]。当前成员为[Product].[Color].&[Red]
或[Product].[Color]。当前成员为[Product].[Color].[all]),
([Measures].[Sales Amount],[Product].[Color].&[Red]),空)

KEEPFILTERS
确保在查看其他颜色时不会显示红色销售。MDX中的等效值为:

Create Member Currentcube.[Measures].[Sales Amount red Products]
as null;

Scope({[Product].[Color].&[Red], [Product].[Color].[All]});
  [Measures].[Sales Amount red Products] = ([Measures].[Sales Amount], [Product].[Color].&[Red]);
End Scope;


Scope
语句是执行IIF的一种更有效的方法。

我们能够识别我们在设置过程中遇到的所有问题。 我们有一个SSAS MD 2017,它在与Power BI交谈时遇到一些问题。第一个是“格式字符串”错误,如下图所示 我们复制了探查器查询,并从生成的dax查询中删除了“格式字符串”行。性能再次快速(至少在ssms中)

第二个问题表现在这一点上。我的一位朋友说,微软方面没有对sql2017进行修复,但对sql2019进行了修复

Create Member Currentcube.[Measures].[Sales Amount red Products]
as null;

Scope({[Product].[Color].&[Red], [Product].[Color].[All]});
  [Measures].[Sales Amount red Products] = ([Measures].[Sales Amount], [Product].[Color].&[Red]);
End Scope;