作为我们应用程序的一部分,我们有一个“app”的Power嵌入式场景。我们编写了一个模型,目的是使最终用户能够连接到Power模型,并在该模型的基础上编写自己的简单报告。99%的报告将是简单的列表,并且模型非常大,有许多关系--而不是一般的星型模式(我们基本上试图让它像SSRS中的旧语义模型那样工作)。
在构建将4+表/视图连接在一起的报表时,它主要工作得很好。我们(非常)削减模式的一个例子如下..。

用户可以从“占有”、“属性”、“占有人”和“人员”表中的字段生成报表,但是,一旦我从“人员联系人”中添加字段,就会得到以下错误

很明显,当我回到SSRS的时候,我遗漏了一些东西,这段关系会很好。如何使用户能够构建将所有这些实体连接在一起的报告?
发布于 2022-09-13 09:04:18
请记住,所有链接“一到多”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]之外的所有其他表一起离开了join。
这就是为什么你会得到这个错误。
它可以是几个解决方案。您可以使用额外的关键字段和双侧链接或DAX。
发布于 2022-10-15 00:42:17
如果您只需要一个或两个来自“PERSON CONTACTS”的列,那么我将使用DAX度量来将多个“PERSON联系人”记录连接起来,如下所示:
All Contacts =
CONCATENATEX (
DISTINCT ( 'PERSON CONTACTS'[CONTACT DETAIL] ),
'PERSON CONTACTS'[CONTACT DETAIL],
", ",
'PERSON CONTACTS'[CONTACT DETAIL]
)这将继续为每个人返回一行,并将他们的联系人详细信息连接到一个单元格中。
然而,如果你需要多列从‘人联系人’,我会把它与‘人’的关系变成一对一。这可能需要过滤查询层中的'PERSON CONTACTS‘数据,例如,每个'PERSON’只有“主”或“最近”记录
发布于 2022-10-18 08:17:15
你能使Occupancy_Person对人的关系双向吗?您之所以得到错误消息,是因为PBI无法将过滤器从Occupancy_Person传播到Person,因为这种关系是单向的。
https://stackoverflow.com/questions/73699800
复制相似问题