select sum(a.t)from ta a group by ta.a,这条语句将表ta中的数据按照a字段分组汇总t字段。
结果比如:3 30
4 50
我想得到这个结果:
1 0
2 0
3 30
4 50
5 0
这个结果,请问sql语句怎么写?多谢

解决方案 »

  1.   

    可以把你的1、2、3、4、5放到另外一张表中,然后通过外连接进行查询
    再decode(sum(a.t),null,0,sum(a.t))
      

  2.   

    select ROWNUM,0 from 有数据的表(表记录>你想要的序列N,你的例子里是5) where ROWNUM <5
    例如 SELECT ROWNUM,0 AS AGE FROM EMP where ROWNUM <5
    ROWNUM AGE
    1 0
    2 0
    3 0
    4 0
    5 0
    SELECT * FROM A;
    ID AGE
    1 30
    3 40
    select id,max(AGE) from 
    (SELECT ROWNUM ID,0 AS AGE FROM EMP where ROWNUM <=5
    union 
    SELECT * FROM A)
    group by id
      

  3.   

    select t1.rn, nvl(sum(t2.t),0) from
    (select rownum rn from dual connect by rownum <= 5) t1,
    ta t2
    where t1.rn = t2.a(+)
    group by t1.rn;
      

  4.   

    select t.l, nvl(sum(t2.t),0) from 
    (
    select level l from dual connect by level <=5) t  
    left join ta t2 on (t.l = t2.a)
    group by t.l
      

  5.   

    case  when sum(columnname) = 0 then 0
    else  then sum(columnname) end; 
      

  6.   

    数字左链接select sum(a.t)from ta a group by ta.a,