DAX-计算多对多映射?

问题描述

我正在尝试构建一个计算表,其中包含不同数据集之间的映射。我用于查找的键可以重复,我想生成所有可能组合的列表。在SQL中,这将是一个联接,它将生成其他行。我正在使用计算所得的表在DAX中进行相同的操作,但是LOOKUPVALUE只能返回一行,并且如果找到多个匹配项,则会出错。

提供了多个值的表,其中期望有一个值

我觉得使用摘要列和虚拟关系是可能的,但是尝试此操作时,我也会遇到错误

=SUMMARIZECOLUMNS (
    Label[LabelText],User[Dim_CustomerUser_Skey],Computer[Dim_Computer_Skey],FILTER ( Computer,Label[Device] = Computer[Device name]),FILTER ( User,Label[UserName] =User[UserName])
)

但这还给出:

计算表'CalculatedTable 1':无法确定表'Label'中'Device'列的单个值。当度量公式引用包含许多值的列而未指定诸如最小值,最大值,计数或总和之类的聚合以获得单个结果时,会发生这种情况

如何为多对多生成计算表?

解决方法

在SQL中,有联接。幸运的是,DAX提供了表之间的联接。

但是首先,要使用什么功能?在这里:

  1. 左外:一般,自然LEFTOUTERJOIN
  2. 右外层:GENERATEALL,NATURALLEFTOUTERJOIN
  3. 全部外部:Crossjoin,Generate,GENERATEALL
  4. 内部:生成,NATURALINNERJOIN
  5. 左防:除
  6. 反右:除

访问:https://www.sqlbi.com/articles/from-sql-to-dax-joining-tables/

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...