DAX从入门到精通 4-5 处理多个表格的场景
2019-07-09 本文已影响0人
PowerBI入门到实践
我们才开始学习上下文,就已经看到了一些有趣的计算结果。你可能会注意导,我们一直都只使用一个表格。只处理一个表格,你要面对的只是同一个表达式中同时存在的行上下文和筛选上下文。
大部分的数据模型都由多个表格通过关系关联构成,很少情况下只有个一个表。因此有一个有趣的问题就是,“在关系中,上下文是如何发挥作用的?”。进一步,因为关系是有方向的,我们还需要知道它在一方和多方式如何工作的。最后,再加一些难度,关系分为单向的和双向的,这个依据你如何定义关系。
如果你再关系的多方表中建立了行上下文,你希望它可以允许你使用一方的吗?反之如何?筛选上下文如何工作,你希望在多方添加一个筛选器,然后看他如何传导导一方?结果都是肯定的。不过,我们关心的是学习DAX是如何处理这些情景,也就是DAX在关系中传递上下文。随着我们的学习深入,当上下文和关系交互的时候,有会一些不易察觉的关系,着需要我们耐心的理解它。
为了便于理解这个场景,我们使用包含了6个表格的数据模型。
![](https://img.haomeiwen.com/i13528785/d3adb743532ac160.png)
模型中有几个点我们要注意一下:
有一条关系链,一对多的关系,从sales表开始,一直连接到product category,中间穿过了product以及product subcategory表。
只有sales表和product表是双向的,其他关系都是设置为单项。
定义好数据模型之后,我们通过一些DAX函数来开始探讨一下上下文的工作。