select code,sum(blandnum) blandnum,sum(badnum) badnum,sum(usednum) usednum from (
select code,blandnum,0 badnum,0 usednum from A表
union all
select code,0 blandnum,badnum,0 usednum from B表
union all
select code,0 blandnum,0 badnum,usednum from C表
) group by code
select code,blandnum,0 badnum,0 usednum from A表
union all
select code,0 blandnum,badnum,0 usednum from B表
union all
select code,0 blandnum,0 badnum,usednum from C表
) group by code
code blanknum
2 20
3 40
3 0
group by trim(code)