[知识体系] 返回表的表达式

  [复制链接]
查看112020 | 回复121 | 2021-2-21 19:02:15 | 显示全部楼层 |阅读模式
我们经常使用返回表的表达式作为其他 DAX 函数的参数,比如 RELATEDTABLE



7111211936391.png



在迭代表的函数中, 表的每行计值 DAX 表达式,这里的表就可以使用返回表的表达式来做进一步约束。

使用方法
  1. [Sales Amount] :=
  2. SUMX (
  3.     Sales,
  4.     Sales[Quantity] * Sales[Unit Price]
  5. )
复制代码

你可以使用其他表函数替换对销售表引用。例如, 你可以使用 FILTER 函数筛选数量大于 1 的销售记录:
  1. [Sales Amount Multiple Items] :=
  2. SUMX (
  3.     FILTER (
  4.         Sales,
  5.         Sales[Quantity] > 1
  6.     ),
  7.     Sales[Quantity] * Sales[Unit Price]
  8. )
复制代码

计算列中, 还可以使用 RELATEDTABLE 函数检索位于一对多关系多端的表的所有行。例如,以下产品表的计算列统计所有产品对应的销售金额:
  1. Product[Product Sales Amount] =
  2. SUMX (
  3.     RELATEDTABLE ( Sales ),
  4.     Sales[Quantity] * Sales[Unit Price]
  5. )
复制代码

关系函数RELATEDTABLE 的详细说明。


你可以将对表函数的调用嵌套在同一个 DAX 表达式中,因为任何表表达式都可以是对表函数的调用。例如,在下面的产品表计算列中,只考虑数量大于 1 的销售记录,计算产品销售额。
  1. Product[Product Sales Amount Multiple Items] =
  2. SUMX (
  3.     FILTER (
  4.         RELATEDTABLE ( Sales ),
  5.         Sales[Quantity] > 1
  6.     ),
  7.     Sales[Quantity] * Sales[Unit Price]
  8. )
复制代码

当发生表函数的嵌套调用时, DAX 首先计算最内层函数, 然后逐级计算到最外层。不要将此规则与 CALCULATE 函数调用参数时的计算顺序混淆。
正如你稍后将看到的, 嵌套调用的执行顺序可能是造成理解混乱的根源, 因为 CALCULATETABLE 的计值顺序与 FILTER 不同。在迭代函数章节, 你将了解 FILTER 的行为, 在 CALCUALTE 函数一节会介绍关于 CALCULATETABLE 的内容。
其他表函数

DAX 中有很多可以返回表的函数,如 ALLADDCOLUMNSINTERSECTSUMMARIZETOPN 等等,基于这些表函数可以衍生出各种灵活的表表达式,这些表函数将在各自对应的章节中介绍。
回复

使用道具 举报

amwaylee | 2021-4-24 15:46:44 来自手机 | 显示全部楼层
围观 围观 沙发在哪里!!!
回复

使用道具 举报

abs | 2021-7-7 07:31:22 | 显示全部楼层
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
回复

使用道具 举报

火嘴 | 2021-7-24 08:54:33 来自手机 | 显示全部楼层
不错不错.,..我一直很喜欢
回复

使用道具 举报

冰雪紫旋 | 2021-10-3 06:56:13 来自手机 | 显示全部楼层
占位编辑
回复

使用道具 举报

gs108 | 2021-10-13 10:50:24 | 显示全部楼层
我了个去,顶了
回复

使用道具 举报

风萧萧 | 2021-10-30 19:56:42 来自手机 | 显示全部楼层
为毛老子总也抢不到沙发?!!
回复

使用道具 举报

GlitterMai | 2021-11-18 21:10:16 | 显示全部楼层
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
回复

使用道具 举报

dcphilip | 2021-11-28 09:52:07 来自手机 | 显示全部楼层
我也顶起出售广告位
回复

使用道具 举报

sd3001 | 2021-11-28 14:03:49 | 显示全部楼层
LZ敢整点更有创意的不?兄弟们等着围观捏~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则