【发布时间】:2020-03-23 19:50:05
【问题描述】:
我有一个简单的问题。我有表 A 和 B,都包含 3 个公共列 (name, id, date),除了这 3 个之外,两个表都有完全不同的列集。
现在,出于可视化目的,我需要将表 B 中的数据关联到表 A。由于我对 SQL 不太擅长,所以我想我可以问一下这是否可能,我知道我可以有计算列,因为我已经在表 A 中有一个简单的东西。但是我想做这样的事情:
表 A 中的新列包含表 B 中“特殊”列的值,用于表 A 中的名称、日期和 ID 与表 B 的名称、日期和 ID 匹配的任何行,如果没有匹配项则保留为空白或为空。
例子
表 A:
Name | Date | ID | OtherData1 | OtherData2
-----+---------------+-----+----------------+-------------
John | March 2020 | SPC | Randomstuff | randomstuff
Doe | March 2020 | SPC | Randomstuff | randomstuff
John | February 2020 | SPC | RandomStuff | RandomStuff
Doe | February 2020 | SPC | Randomstuff | randomstuff
表 B:
Name | Date | ID | MoreData1 | SomeData2 | Special
-----+---------------+-----+---------------+---------------+--------
John | March 2020 | SPC | Randomstuff | randomstuff | True
Doe | March 2020 | SPC | Randomstuff | randomstuff | False
John | February 2020 | SPC | RandomStuff | RandomStuff | True
Doe | February 2020 | SPC | Randomstuff | randomstuff | True
表 A 中的结果:
Name | Date | ID | OtherData1 |OtherData2 | SpecialImported
-----+---------------+-----+---------------+-------------+----------------
John | March 2020 | SPC | Randomstuff | randomstuff | True
Doe | March 2020 | SPC | Randomstuff | randomstuff | False
John | February 2020 | SPC | RandomStuff | RandomStuff | True
Doe | February 2020 | SPC | Randomstuff | randomstuff | True
这可以在 SQL Server 中实现吗?
【问题讨论】:
-
对表进行非规范化 (?!) 的替代方法是创建一个 view 来组合两个表中的数据。然后,您可以
select视图中的数据,而无需担心底层查询。 -
我的问题是我将两个表都拉到电源 bi 上,我试图从它们那里连接它们。问题还在于,与表 A 相比,表 B 在某些报告日期的数据要少得多,并且名称有时对于不同的 ID 是相同的。所以它会产生混淆数据可视化的模糊性。我想要做的是确保在名称、日期和 id 同时匹配时提取 SpecialImported 值,否则将其保留为空。感谢您的输入,因为我将使用它来显示数据问题
标签: sql sql-server tsql join