我必须查询我正在应用联合函数。
select item, loc, qty from rms_transfer
union
select item, loc, qty from sim_transfer
如果两个查询中的item和loc相同,则两个查询的qty应该在最终结果中相加。
我们如何实现这一目标?
答案 0 :(得分:2)
我认为您需要union all
,而不是union
:
select item, loc, qty from rms_transfer;
union all
select item, loc, qty from sim_transfer;
union
删除重复项。因此,如果您想保留所有原始行,请使用union all
。
如果您想要在同一行上使用值,则可以使用后聚合:
select item, loc, sum(qty)
from (select item, loc, qty from rms_transfer;
union all
select item, loc, qty from sim_transfer
) il
group by item, loc
答案 1 :(得分:1)
只需做一个GROUP BY
:
SELECT item, loc, SUM(qty) AS qty
FROM (
SELECT item, loc, qty FROM rms_transfer
union
SELECT item, loc, qty FROM sim_transfer) AS t
GROUP BY item, loc
相同的item, loc
对将组合在一起,并将相应的数量相加。