首页 > 解决方案 > 如何在 Power BI 中的多对多关系中引用正确的值?

问题描述

我有两张按序列号连接的表。

样品

SERIAL#  SMU  SAMPLE
001      52   GREEN
002      25   GREEN
001      124  YELLOW
003      41   RED
001      266  GREEN
001      280  GREEN

保修单

SERIALl#   SMUSTART SMUEND  LIFE
001       1        100     1
002       5        105     1
003       1        100     1
001       101      200     2
001       201      300     3

我试图能够在 LIFE 上创建一个切片器,它只会向我显示 SMU 在 SMUSTART 和 SMUEND 范围内的 SAMPLES。我尝试将 LIFE 列拉入 SAMPLES 表,连接 SERIAL# 和 LIFE,然后在我的新连接列上连接表。但是我从来没有成功地将 LIFE 带到 SAMPLES 表上,甚至不知道我是否走在正确的道路上。任何和所有的帮助表示赞赏。谢谢你。如果我需要澄清任何事情,请告诉我。

标签: powerbi

解决方案


如果您转换表格,这是可能的。

在样本表中添加一个新列,该列是序列号和 SMU 的组合。

SAMPLES

SERIAL#  SMU  SAMPLE    SER_SMU
001      52   GREEN     001_52
002      25   GREEN     002_25
001      124  YELLOW    001_124
003      41   RED       003_41
001      266  GREEN     001_266
001      280  GREEN     001_280

您首先必须“扩展”的保修表。为每个可能的 SMU 创建一行。然后再次添加一个新列,即 Serial no 和 SMU 的组合。

像这样:

SERIALl#    SMU LIFE    SER_SMU
001         1   1       001_1
001         2   1       001_2
...
001         100 1       001_100

这样您就可以连接 SER_SMU 上的表。

你的数据来源是什么?能不能在导入的时候转换表,不然就得用power query来做,可能有点难度。

编辑:SQL 查询示例:

SELECT s.serial, s.SMU, s.SAMPLE,w.LIFE
FROM samples s
LEFT JOIN warranty w
    ON s.serial = w.serial
    AND s.SMU BETWEEN w.SMUSTART AND w.SMUEND

推荐阅读