我有一个名为REV的Impala表,其中包含wire_code和每个电汇代码的金额
+---------+------+
|wire_code| amt |
+---------+------+
| abc | 100 |
+---------+------+
| def | 50 |
+---------+------+
| ghi | 250 |
+---------+------+
| jkl | 300 |
+---------+------+
另一个表是FA,它具有wire_code和Ajusted_wire_code。
+---------+------+
|wire_code|adj_wc|
+---------+------+
| abc | def |
+---------+------+
| ghi | jkl |
+---------+------+
我需要调整电汇代码的数量,该金额在FA表中可作为adj_wc使用。 例如:
FA表中有“ abc”,并将其调整为“ def”,那么我的输出应该是-wire_code“ def”的数量为(abc + def),如下所示。 “ abc”金额将保持不变。
+---------+------+
|wire_code| amt |
+---------+------+
| abc | 100 |
+---------+------+
| def | 150 |
+---------+------+
| ghi | 250 |
+---------+------+
| jkl | 550 |
+---------+------+
请帮助此查询。 预先感谢!
答案 0 :(得分:2)
使用两个联接:
select r.wire_code, r.amt+coalesce(a.amt,0) as amt
from REV r
left outer join FA f on r.wire_code=f.adj_wc --adjustments
left outer join REV a on f.wire_code=a.wire_code --adjusted amount
;