做项目需要通过白班、夜班两张视图写出一张日合计视图。一开始用的是:
SELECT 白班.字段 + 夜班.字段 AS “日合计_字段” FROM 白班,夜班 WHERE 白班.日期 = 夜班.日期;
这样搞就很难受。当有一天有一个字段有白班没夜班或者有夜班没白班,这个字段就不会出现在日合计里面。
这时候我明白了sql引入外连接这个东西的原因,太合理了。我需要连接白班夜班两个表,哪个班的数据为空就置为0。所以:
SELECT NVL(白班.字段,0)+NVL(夜班.字段,0) AS "日合计_字段"
FROM 白班 FULL JOIN 夜班
ON 白班.日期 = 夜班.日期
解决问题