【问题标题】:DAX - Calcuate a many to many mapping?DAX - 计算多对多映射?
【发布时间】:2020-08-26 10:26:11
【问题描述】:

我正在尝试构建一个计算表,其中包含不同数据集之间的映射。我用来进行查找的键可以重复,我想生成所有可能组合的列表。在 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”:无法确定表“标签”中“设备”列的单个值。当度量公式引用包含许多值但未指定聚合(例如 min、max、count 或 sum)以获得单个结果的列时,可能会发生这种情况

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

【问题讨论】:

    标签: ssas dax ssas-tabular azure-analysis-services


    【解决方案1】:

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

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

    1. 左外:GENERATEALL、NATURALLEFTOUTERJOIN
    2. 右外:GENERATEALL、NATURALLEFTOUTERJOIN
    3. 完整的外部:交叉连接、生成、生成全部
    4. 内部:GENERATE,NATURALINNERJOIN
    5. 左反:除了
    6. 右反:除了

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

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 1970-01-01
      • 2012-07-08
      • 2020-01-29
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2014-08-17
      相关资源
      最近更新 更多