A表 B表 C 结果表
货架号 编码 数量 货架号 编码 数量 货架号 编码 A表数量 B表数量 A-B差
H001 123 1 H001 123 1 H001 123 3 4 -1
H001 456 2 H001 456 2 H001 456 5 6 -1
H001 123 2 H001 123 3 H001 567 5 2 3
H001 456 3 H001 456 4 H001 789 2 5 -3
H001 567 2 H001 567 2 H001 788 5 0 5
H001 789 3 H001 789 5 H001 455 0 6 -6
H001 567 3 H001 455 6
H001 789 2 H002 321 2
H001 778 5 H002 322 5
H002 321 2 H002 321 3
H002 322 3 H002 322 6
H002 321 3 H002 334 4
H002 322 2
H002 333 3
H002 322 1
H002 333 1
结果表中以货架号H001为例,编码相同的数量汇总。 分别查出A、B表中的数量对比,按C表的格式插入C表中。
select 货架号,编码,sum(if(flag=1,数量,0)) as A数量,sum(if(flag=2,数量,0)) as B数量,sum(if(flag=1,数量,0))-sum(if(flag=2,数量,0)) as A数量-B数量 from (select 货架号,编码,数量,1 as flag from A表 union all select 货架号,编码,数量,2 as flag from B表) group by 1,2;