【问题标题】:Power BI Relationships - Can't determine the relationships between two or more fieldsPower BI 关系 - 无法确定两个或多个字段之间的关系
【发布时间】:2022-10-15 08:42:17
【问题描述】:

作为我们应用程序的一部分,我们有一个“应用程序拥有数据”Power BI 嵌入式方案。我们编写了一个模型,目的是让最终用户可以连接到 Power BI 模型并基于所述模型编写自己的简单报告。 99% 的报告将是简单的列表,并且模型非常大,具有许多关系——而不是您的平均星型模式(我们基本上试图让它像 SSRS 的旧语义模型一样工作)。

它是大多除了构建将 4 个以上的表/视图连接在一起的报告之外,它工作得很好。下面是我们(非常)缩减模型的一个示例......

用户可以从 Occupancy、Property、Occupancy Person 和 Person 表中的字段构建报告,但是,一旦我从 Person Contacts 添加字段,我就会收到以下错误

显然,我在 SSRS 中缺少一些东西,这种关系本来会很好。我怎样才能使用户能够构建将所有这些实体链接在一起的报告?

【问题讨论】:

    标签: powerbi powerbi-embedded


    【解决方案1】:

    请记住,所有“一对多”DAX 引擎的链接都会转换为 SQL LEFT JOIN。在您的模型中,每个 Pearson 都有多个联系人,这意味着 DAX 引擎实际上将 Person Contacts 表转换为下表:

    SELECT * 
      FROM [PERSON CONTACTS]
      LEFT JOIN [PERSON]
      ON [PERSON CONTACTS].[Key]=[PERSON].[Key]
    

    就是这样。

    所以,[PERSON CONTACTS] 只与[PERSON] 有链接,而且只有一种方式。 [PERSON CONTACTS] 与任何其他表都没有关系。

    同时[Occupancy] 与除[PERSON CONTACTS] 之外的所有其他表进行左连接。

    这就是您收到此错误的原因。

    它可以是几种解决方案。您可以使用其他关键字段和双向链接或 DAX。

    【讨论】:

    • 啊,好的-这真的很有用,谢谢。请您介意详细说明其中一种解决方案以及我如何为上述示例实施它吗?
    • 你好,首先添加一个结果样本。作为平桌更好
    • 抱歉,您需要哪些表的示例数据?
    【解决方案2】:

    如果您只需要“PERSON CONTACTS”中的一两列,那么我将使用 DAX 度量来解决此问题,以连接多个“PERSON CONTACTS”记录,如下所示:

    All Contacts =
    CONCATENATEX (
        DISTINCT ( 'PERSON CONTACTS'[CONTACT DETAIL] ),
        'PERSON CONTACTS'[CONTACT DETAIL],
        ", ",
        'PERSON CONTACTS'[CONTACT DETAIL]
    )
    

    这将继续为每个人返回一行,并将他们的联系方式连接到一个单元格中。

    但是,如果您需要“PERSON CONTACTS”中的多个列,我会将其与“PERSON”的关系变成一对一的关系。这可能需要过滤查询层中的“PERSON CONTACTS”数据,例如只有每个“人”的“主要”或“最近”记录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 2022-09-29
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      相关资源
      最近更新 更多