Tableau - 连接并比较 3 个表多对多

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

我正在构建一个仪表板,我有 3 个表格想要相互比较。我希望能够看到所有 3 个表中匹配和不匹配的行

表 1(所有行都是唯一的)

身份证 产品名称 收入
1 姓名1 100 美元
2 姓名2 200 美元
3 姓名3 300 美元

表 2(供应商 1 的产品销售额)

身份证 产品名称 四分之一 国家 供应商 销售
1 姓名1 2022 年第一季度 英国 供应商1 $250
2 姓名2 2022 年第一季度 英国 供应商1 10 美元
3 姓名3 2022 年第一季度 日本 供应商1 155 美元
3 姓名3 2022 年第二季度 美国 供应商1 40 美元
2 姓名2 2022 年第三季度 加拿大 供应商1 100 美元

表 3(供应商 2 的产品销售额)

身份证 产品名称 四分之一 国家 供应商 销售
1 姓名1 2022 年第一季度 瑞典 供应商2 110 美元
3 姓名3 2022 年第三季度 巴西 供应商2 50 美元
4 名字4 2022 年第一季度 美国 供应商2 70 美元
5 名字5 2022 年第二季度 加拿大 供应商2 20 美元
5 名字5 2022 年第二季度 法国 供应商2 125 美元

如何在 Tableau 中连接这 3 个表,以便我可以构建一个比较它们的仪表板,以便我可以显示以下内容:

  • 表 1 中找到和未找到的供应商 1 销售的产品的不同计数

  • 表 1 中找到和未找到的供应商 2 销售的产品的不同计数

  • 供应商 1 销售且供应商 2 也销售的产品的不同计数

  • 供应商 1 销售但供应商 2 未销售的产品的不同计数(反之亦然)

  • 以上各项的总收入

  • 每个国家/地区每个季度的独特销售总数

我尝试将表 1 与表 2 和表 3 进行完全外连接,然后分别在 ID 字段上对表 2 和表 3 进行完全外连接,但不断得到奇怪的结果。然后,我加入了修改表 2 和 3 上的完整外部联接,还加入了产品名称、ID、季度、国家/地区,这提供了更好的结果,但随后销售值显示了奇怪的结果。我使用 id 列创建了(表 1 与表 2 和表 3)和(表 2 和表 3)之间的关系,但没有给出正确的结果。有人可以帮忙吗?我确信我把本应该简单的事情复杂化了。

sql many-to-many tableau-api outer-join tableau-desktop
2个回答
0
投票

加入

产品 ID 上的 左连接 无需完整外部,即可实现。

Tableau 关系

或者查看这篇文章的答案中的 GIF,了解“创建与三个或更多表的关系”。只需确保编辑链接(连接)关系的内容,并确保它们具有匹配的类型,即。 字符串到字符串整数到整数


0
投票

表一似乎有一行代表每种产品。因此,您只需要在您的产品表和由两个销售表形成的联合之间建立一对多关系。每个产品都有很多销量。

当两个表中的记录表示相同类型的实体并且两个表中的行之间不一定存在关系时,UNION 是合适的。当一个表中的特定项目与另一表中的特定项目相关联时,JOIN 是合适的。在这种情况下,“产品”表中的产品与“销售”表中的相应行相关联。

最后一点,通常您会从产品表中删除收入列,并在需要时从销售表中计算该值。

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