Sql 使用完全外部联接
我有两个视图,其中包含ID、单位和数量。一个视图用于实际值,另一个视图用于估计值。我需要一个select语句,该语句将返回两个视图中的所有行(对于特定ID),而不管单元是否在两个视图中。我似乎无法让它与完整的外部连接一起工作,因为我需要在ID和单元上连接 在本例中,vVMVoyEstTotalBLQuantitySrch包含CBM条目,该条目不在vVMVoyBLQuantitySrch中。我仍然想要所有的台词,例如: 也可能是另一种方式,例如vVMVoyEstTotalBLQuantitySrch不包含特定的单位,但vVMVoyBLQuantitySrch包含,同样,我需要所有行。如果它至少在一个视图中,则返回它 我尝试了一些来自互联网的代码片段,在ID和Unit上使用COALESCE,但是我只得到了缺失条目(CBM),而不是全部Sql 使用完全外部联接,sql,sql-server,full-outer-join,Sql,Sql Server,Full Outer Join,我有两个视图,其中包含ID、单位和数量。一个视图用于实际值,另一个视图用于估计值。我需要一个select语句,该语句将返回两个视图中的所有行(对于特定ID),而不管单元是否在两个视图中。我似乎无法让它与完整的外部连接一起工作,因为我需要在ID和单元上连接 在本例中,vVMVoyEstTotalBLQuantitySrch包含CBM条目,该条目不在vVMVoyBLQuantitySrch中。我仍然想要所有的台词,例如: 也可能是另一种方式,例如vVMVoyEstTotalBLQuantityS
请帮忙 您的尝试是这样的吗
select . . .
from view1 v1 full outer join
view2 v2
on v1.id = v2.id
where 15506 in (v1.id, v2.id);
诀窍是您必须同时检查两个ID,因为完全外部联接
可能会产生NULL
值。尝试下面的查询
SELECT ISNULL(q1.Id,q2.Id) As Id,
ISNULL(q1.estLoadUnit,q2.ActLoadUnit) As Units,
q1.EstTotalLoaded,
q2.ActTotalLoadded
FROM vVMVoyEstTotalBLQuantitySrch q1
FULL OUTER JOIN vVMVoyBLQuantitySrch q2 ON q1.Id = q2.Id
AND q2.actLoadUnit = q1.EstLoadUnit