Powerbi 无法创建1:M关系

Powerbi 无法创建1:M关系,powerbi,Powerbi,在Power BI中,我试图将维度表与事实表连接起来。维度表中大约有1.1M行(我知道维度表有很多行)。所有值都是唯一的。当我尝试将其加入事实表时,PBI会自动创建一个M:M关系。当我尝试将其更改为1:M时,我收到一条消息,说“您为此关系选择的基数无效” 下面是生成数据集的查询。正如你所看到的,不可能有重复的 SELECT DISTINCT [TranDesc] as TransactionDescription FROM [dbo].[dGLTranDescription]; 为什么会

在Power BI中,我试图将维度表与事实表连接起来。维度表中大约有1.1M行(我知道维度表有很多行)。所有值都是唯一的。当我尝试将其加入事实表时,PBI会自动创建一个M:M关系。当我尝试将其更改为1:M时,我收到一条消息,说“您为此关系选择的基数无效”

下面是生成数据集的查询。正如你所看到的,不可能有重复的

SELECT DISTINCT
   [TranDesc] as TransactionDescription
FROM [dbo].[dGLTranDescription];

为什么会收到此消息?

请尝试验证Power BI是否将维度表中的值视为唯一的。根据您的数据,源系统和PowerBI可能会有不同的看法

以下是来自中国的建议

一,

创建两个措施以在Power BI中进行验证:

TotalRows=COUNTROWS('DimTableHere')

DistinctRows=DISTINCTCOUNT('DimTableHere'[DimTableJoinColumnHere])

创建这两个度量值后,如果需要,将它们放在两张卡片的视觉效果中 结果是不同的,这意味着在您的 维度表

二,

如果您在第一次创建关系时有重复项,而现在没有,则删除该关系并重新创建它可能会解决该问题


尝试验证维度表中的值是否唯一。根据您的数据,源系统和PowerBI可能会有不同的看法

以下是来自中国的建议

一,

创建两个措施以在Power BI中进行验证:

TotalRows=COUNTROWS('DimTableHere')

DistinctRows=DISTINCTCOUNT('DimTableHere'[DimTableJoinColumnHere])

创建这两个度量值后,如果需要,将它们放在两张卡片的视觉效果中 结果是不同的,这意味着在您的 维度表

二,

如果您在第一次创建关系时有重复项,而现在没有,则删除该关系并重新创建它可能会解决该问题


如果已删除关系列上的重复项,但该列仍将其视为无效基数,请尝试在删除重复项之前在该列上运行Text.Clean。我有一个特殊的字符,但是在查询中删除了重复项,在那里计算的值不同,但导入后它们被认为是相同的。

如果您删除了关系列上的重复项,但它仍然认为它是无效的基数,请尝试运行文本。在删除重复项之前清除该列。我有一个特殊的字符,但删除了查询中的重复项,在那里计算的值不同,但一旦导入,它们就被认为是相同的。

我更新了我的帖子,以包含引入数据集的查询。您可以看到不可能存在重复项。@RandyMinder,检查一个不同的值是null还是空字符串“”。是的,其中一个值是空字符串。但没有空值。空字符串会为关系创建歧义。检查它是否有助于在源SQL或Power BI中的Power Query Editor中将其过滤掉。在Power Query Editor中,在列筛选器中选择“Remove Empty”或在高级编辑器中添加一个步骤:=表。选择行(#“PirorStepNameHere”,每个([#“TranDesc”]null和[#“TranDesc”]]”),我已更新帖子以包含引入数据集的查询。您可以看到不可能存在重复项。@RandyMinder,检查一个不同的值是null还是空字符串“”。是的,其中一个值是空字符串。但没有空值。空字符串会为关系创建歧义。检查它是否有助于在源SQL或Power BI中的Power Query Editor中将其过滤掉。在Power Query Editor中,在列筛选器中选择“Remove Empty”,或在高级编辑器中添加一个步骤:=表。选择行(#“PirorStepNameHere”,每个([#“TranDesc”]null和[#“TranDesc”]]”)