有三个表
表A
型号  数量1
a     1
c     2
f     3
g     3表B
型号  数量2
a     2
b     3
c     6表C
型号  数量3
a     3
f     9如何查询出一下结果
型号   数量1   数量2   数量3
a       1      2      3
b       0      3      0
c       2      6      0
f       3      0      9
g       3      0      0
麻烦各位帮我看看,谢谢!

解决方案 »

  1.   

    建个临时表 要比 left join union right join方便些
    create table xinghao(id varchar(10));
    insert into xinghao values('a'),('b'),('c'),('d'),('e'),('f'),('g')select D.xinghao,case when A.数量1 is null then 0 else A.数量1 end,
    case when B.数量2 is null then 0 else B.数量2 end,
    case when C.数量3 is null then 0 else C.数量3 end
    from xinghao D lefe join A on D.id=A.型号 left join B on D.id=B.型号
       left join C on D.id=C.型号
      

  2.   

    本帖最后由 ACMAIN_CHM 于 2013-01-11 08:05:27 编辑
      

  3.   

    select 型号,sum(数量1),sum(数量2),sum(数量3)
     from (
     select 型号,数量1,0 as 数量2,0 as 数量3 from A
     union all
     select 型号,0,数量2,0 as 数量3 from B
     union all
     select 型号,0,0,数量3 from C
     ) t
     group by 型号