首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表格模型多2多

表格模型多2多
EN

Stack Overflow用户
提问于 2014-11-04 14:06:01
回答 1查看 542关注 0票数 0

有人能向我解释一下下面两个问题的幕后究竟发生了什么吗?他们似乎表现出相同的结果,但这是“更好”过滤一个测量表模型dax跨多对多的关系.

以下是(相当标准的)模型: FactData --> Account <

示例1:

代码语言:javascript
复制
SumAmountM2M - v1 :=
IF (
    COUNTROWS ( ALL ( Customers ) ) > 0,
    CALCULATE ( SUM ( 'FactData'[Amount] ), AccountCustomerM2M ),
    SUM ( 'FactData'[Amount] )
)

示例2:

代码语言:javascript
复制
SumAmountM2M - v2 :=
IF (
    ISCROSSFILTERED ( 'Customers'[CustomerKey] ),
    CALCULATE ( SUM ( 'FactData'[Amount] ), AccountCustomerM2M ),
    SUM ( 'FactData'[Amount] )
)

谢谢你的帮助!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-04 17:28:13

示例1总是使用多到多的计算,而不考虑客户的选择,除非Customers表是空的。也许您想写IF ( COUNTROWS (所有客户))> COUNTROWS (客户),.

示例2只执行多对多的计算,无论是直接还是间接选择客户(例如,您在切割机中选择了客户所在的城市)。

示例2优化了计算,因为ISCROSSFILTERED函数在查询计划中只执行一次,并且比COUNTROWS方法更优化,而COUNTROWS方法在复杂迭代中的开销可能更高,因为它在外部迭代的每一行上下文中执行。

马可

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26737141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档