我有两个表 ACTUAL 和 ESTIMATE 具有唯一列(sal_id、gal_id、amount、tax)。
在 ACTUAL 表中,我有 actual_id、sal_id、gal_id、process_flag、amount、tax
1 111 222 N 100 1
2 110 223 N 200 2
在 ESTIMATE 表中,我有 estimate_id、sal_id、gal_id、process_flag、amount、tax
3 111 222 N 50 1
4 123 250 N 150 2 5 212 312 Y 10 1
现在我想要一个最终表,它应该有来自 ACTUAL 表的记录,如果 ACTUAL 中不存在 sal_id+gal_id 映射的记录但存在于 ESTIMATE 中,则填充估计记录(以及添加金额和税款)。
In FINAL table
id sal_id、gal_id、actual_id、estimate_id、total
1 111 222 1 null 101(因为实际表中存在 111 222 的记录)
2 110 223 2 null 202(因为实际表中存在 110 223 的记录)
3 123 250 null 4 51(因为实际表中不存在记录,但估计存在 123 250)
(估计为212 312组合,由于记录已经处理,无需再次处理)。
我正在使用 Oracle 11g。请帮助我在单个 sql 查询中编写逻辑?
谢谢。