sql - 使用全外连接
问题描述
我有两个视图,其中包含 ID、单位和数量。一种视图用于实际值,另一种视图用于估计值。我想要一个 select 语句,它将返回两个视图中的所有行,对于特定的 ID,无论单元是否在两个视图中。我似乎无法让它与 FULL OUTER JOIN 一起使用,因为我需要加入 ID 和 Unit。
在此示例中,vVMVoyEstTotalBLQuantitySrch 包含 CBM 条目,该条目不在 vVMVoyBLQuantitySrch 中。我仍然想要所有的行,例如:
也可能是相反的方式,例如 vVMVoyEstTotalBLQuantitySrch 不包含特定单位,但 vVMVoyBLQuantitySrch 包含,并且我再次想要所有行。如果它在至少一个视图中,则返回它。
我已经尝试了一些来自互联网的代码片段,在 ID 和 Unit 上都使用了 COALESCE,但是我只得到了丢失的条目(CBM),而不是全部。
请帮忙!
解决方案
试试下面的查询
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
推荐阅读
- javascript - canvg 正在返回带有 angular5 的 base64 字符串的白屏
- mysql - 如何检查 MySql 中的数据字典大小
- vue.js - Vuex:突变的最佳实践是什么?
- html - 如何在引导程序(4.1)中将所有行与容器底部对齐?
- printing - LPR 在 localhost 上找不到共享打印机
- solr - Apache Solr:错误:未知字段_src_
- c# - 在c#中从给定的15位数字生成校验位
- java - 添加千分尺依赖会导致奇怪的 Spring 代理问题
- jquery - css 更改 - 插入的元素不可见
- android - 小米等智能手环官方SDK/API