如何汇总
T1
col1         col2         col3
aa s1 10
aa s1 10
aa s1 10T2
col1         col4         col5
aa s2 10
T3
col1        col6        col7
aa s3 10
aa s3 10↓
col1 col2 sum(col3) col4 sum(col5) col6 sum(col7)
aa s1 30 s2 10 s3 20
先谢谢各位大仙了

解决方案 »

  1.   

    不用union 想一次select能实现么?
      

  2.   

    select col1,col2,sum1,col4,sum2,col6,sum3
    from
    (select col1 col2 sum(col3) sum1 from t1 group by col1,col2) a
    ,
    (select col1 col4 sum(col5) sum2 from t2 group by col1,col4) b
    ,
    (select col1 col6 sum(col7) sum3 from t3 group by col1,col6) c
    where a.col1=b.col1=c.col1
      

  3.   

    select a.col1,col2,sum1,col4,sum2,col6,sum3
    from
    (select col1,col2,sum(col3) sum1 from t1 group by col1,col2) a
    ,
    (select col1,col4,sum(col5) sum2 from t2 group by col1,col4) b
    ,
    (select col1 col6 sum(col7) sum3 from t3 group by col1,col6) c
    where a.col1=b.col1=c.col1
      

  4.   

    呵呵
    用union反而实现不了吧
      

  5.   

    先把三个表union成一张表,然后用decode列转行.
      

  6.   

    SQL> edi
    已写入 file afiedt.buf  1  with t1 as
      2  (select 'aa' col1,'s1' col2,10 col3 from dual union all
      3  select 'aa','s1',10 from dual union all
      4  select 'aa','s1',10 from dual),
      5  t2 as
      6  (select 'aa' col1,'s2' col4, 10 col5 from dual),
      7  t3 as
      8  (select 'aa' col1,'s3' col6,10 col7 from dual union all
      9  select 'aa','s3',10 from dual)
     10  select a.col1,col2,col3,col4,col5,col6,col7
     11  from
     12  (select col1,col2,sum(col3) col3 from t1 group by col1,col2) a,
     13  (select col1,col4,sum(col5) col5 from t2 group by col1,col4) b,
     14  (select col1,col6,sum(col7) col7 from t3 group by col1,col6) c
     15* where a.col1=b.col1 and a.col1=c.col1
    SQL> /CO CO       COL3 CO       COL5 CO       COL7
    -- -- ---------- -- ---------- -- ----------
    aa s1         30 s2         10 s3         20
      

  7.   

    如果是报表展现的话,我觉得union 后直接用交叉表来实现,更容易噢