SQL 服务器上多个表的外部联接

Outer join on multiple tables on SQL Server

我正在写一个递归算法。它从去年的 4 个时期获取数据,并创建一个结果集。 问题是并非所有场景 return 4 个时期。 因此,我在 table 上完成了一组 4 个选择,使用外部连接来连接它们。他们加入了PK。但是,它们都连接到第一个数据点。有时这个数据点不存在,这会在我的连接中引发麻烦。 有没有一种简单的方法可以使用 PK 在 4 tables 上进行完全外部连接并执行 16 个 where 子句并使用 (+) 进行外部连接 实际上,(+) 甚至可以在 sql 服务器上运行吗?

谢谢, 埃里克

您应该首先创建一个包含上一年所有时期的完整数据集。 *你可以通过使用类似 SELECT DISTINCT PERIOD FROM (SELECT PERIOD FROM SetA union SELECT PERIOD FROM SetB UNION SELECT PERIOD FROM SETC 等...) AS完整集

然后离开加入 COMPLETESET 期间的所有其他数据集。

连接中不存在的数据点将 return 空值。