添加新关系会中断计算

问题描述 投票:0回答:2

一家软件公司正在向所有主要汽车制造商销售其产品。

软件分为:

  • 多租户资源:客户之间共享的资源(例如梅赛德斯、奥迪、宝马、大众等汽车制造商...)
  • 单租户资源:专用于单个客户的资源(在示例中为 BMW)

所以我的目标是计算 BMW 多租户和单租户资源的成本。

我创建了一个模型,您可以在这里下载:

如您所见,我可以计算多租户资源,但不能计算单租户资源:

一旦我创建了一个可以帮助我计算单租户资源的关系,我就成功了!

...但现在多租户资源已损坏。

我做错了什么?

为什么一种关系会删除另一种关系?

或者造成其他故障?

powerbi dax visualization powerbi-desktop data-modeling
2个回答
1
投票

在这种情况下,我只能告诉你原因,但不能告诉你修复方法,因为我不了解你的数据模型和数据域。您需要创建适当的星型模式才能使 PBI 正常工作。您所看到的原因是您正在创建一个不明确的模型。数据模型是 PBI 中的一切,关系决定过滤器如何在表之间传播。

在创建新关系之前,示例数据将由 SSRS 过滤,而 SSRS 又由租户过滤,而租户又由客户端过滤。通过直接在客户端和示例数据之间引入关系,您为过滤器传播创建了更直接的关系,并且 PBI 使用最短路径。

理想情况下,您需要事实表和维度表。您还应该为您的度量编写DAX,以便您可以使用诸如USERELATIONSHIP()之类的东西来控制计算。

数据建模在 PBI 中相当困难,通常是大多数人遇到困难的地方。


0
投票

Davide Bacci 是对的,真正的解决方案是创建更好的图表。

但是我现在通过使用USERELATIONSHIP找到了一个

补丁

因为一个计算有效,但另一个计算无效,我只是像 GIF 中所示那样拖放关系但我停用了它

然后我用了DAX公式:

Cost_by_ResourceGroup = 
CALCULATE(
    SUM('Sample Data'[costInBillingCurrency]),
    USERELATIONSHIP(Client[ClientCode], 'Sample Data'[tags])
)

结果,由于这种关系,第一个计算有效。第二个是因为

USERELATIONSHIP

警告:

这意味着绕过问题。没有解决问题。

我仍在继续努力,直到不再遇到这个问题。但总有一天我需要处理 ER 图。

© www.soinside.com 2019 - 2024. All rights reserved.