tradeid demin_class_id totalvalue
1        1               10
1        2               10
1        3               10
2        2               20
2        3               20
2        5               20
2        6               20需求是这样的:假设tradeid为报销单号,求出所有报销费用之和,demin_class_id表示同一张报销单的不同分类,即一张报销单
按不同的分类,其费用是一致的,现在要计算所有报销费用之和!谢谢!在线等!

解决方案 »

  1.   

    select tradeid,sum(totalvalue) from tablename group by tradeid
      

  2.   

    select tradeid ,sum(totalvalue)
       from(
       select distincts 
    tradeid , totalvalue
    from a    )
    group by tradeid
      

  3.   

    select sum(totalvalue) from test order by tradeid,demin_class_id  group by tradeid,demin_class_id;
      

  4.   

    不是很明白楼主意思。按报销单求费用和的话就直接
    select sum(totalvalue) from tablename group by tradeid;
    求总和的话就
    select sum(totalvalue) from tablename;
    不会问的这么简单吧。如果不是再说明白点。
      

  5.   

    是每个报销单号的所有费用.还是所有有费用?
    每个:
    select tradeid,sum(totalvalue) from 表名 group by tradeid;
    所有:
    select sum(totalvalue) from 表名;
      

  6.   

    select demin_class_id,sum(totalvalue) from test order by demin_class_id group by demin_class_id; 
      

  7.   


    select tradeid , sum(totalvalue) sum_totalvalue from tb group by tradeid
      

  8.   

    是不是这个答案呢
    WITH a AS (SELECT '1' ID ,1 cid ,10 sal FROM dual
    UNION ALL
    SELECT '1' ID ,2 cid ,10 sal FROM dual
    UNION ALL
    SELECT '1' ID ,3 cid ,10 sal FROM dual
    UNION ALL
    SELECT '2' ID ,2 cid ,20 sal FROM dual
    UNION ALL
    SELECT '2' ID ,3 cid ,20 sal FROM dual
    UNION ALL
    SELECT '2' ID ,5 cid ,20 sal FROM dual
    UNION ALL
    SELECT '2' ID ,6 cid ,20 sal FROM dual
    )
    SELECT 'id-'||nvl(ID,'总和')  ,SUM(sal) FROM a 
    group   by   rollup(ID)
    UNION ALL
    SELECT 'cid-'||nvl(''||cid,'总和') ,SUM(sal) FROM a 
    group   by   rollup(cid);结果是: id-1 30
    id-2 80
    id-总和 110
    cid-1 10
    cid-2 30
    cid-3 30
    cid-5 20
    cid-6 20
    cid-总和 110
      

  9.   

    select tradeid ,sum(totalvalue)
       from(
       select distinct 
    tradeid , totalvalue
    from a    )
    group by tradeid
      

  10.   

       select sum(totalvalue) as 总费用
      from( 
      select distinct 
    tradeid , totalvalue 
    from a)  
      

  11.   

    select sum(totalvalue) from tbl
      

  12.   

    问题已经解决,谢谢LS各位热心兄弟,不过基本上都没有完全明白我的意思,我描述的不是太清楚!这里随便再问个问题:
    table1:
    city(city_id int,range_id int rerference range(range_id)  fk);---这里是简写,语法记不清了
    range(range_id int);
    city有如下记录:city_id range_id
    1        3
    2        4
    3        1
    4        2现在想按 range_id 顺序,查询出数据,要求这两张表不执行连接操作,有没有什么好方法,请高手支招,有满意答案,另加分!谢谢!
      

  13.   

    select * from city order by range_id
      

  14.   

    select distinct tradeid, sum(totalvalue) from  tablename group by tradeid
      

  15.   

    =================
    第二张表:
    range_id
    3
    4
    1
    2
    其他字段略,这两张表相当于product和product_type的关系
      

  16.   

    是这个意思吗?如果不是LZ想要的就把想要的结果贴出来就明白了。
    SQL> SELECT C.CITY_ID,C.RANGE_ID
      2    FROM (SELECT 1 CITY_ID,3 RANGE_ID FROM DUAL
      3          UNION ALL
      4          SELECT 2 CITY_ID,4 RANGE_ID FROM DUAL
      5          UNION ALL
      6          SELECT 3 CITY_ID,1 RANGE_ID FROM DUAL
      7          UNION ALL
      8          SELECT 4 CITY_ID,2 RANGE_ID FROM DUAL
      9          )C,
     10         (SELECT 3 RANGE_ID FROM DUAL
     11          UNION ALL
     12          SELECT 4 RANGE_ID FROM DUAL
     13          UNION ALL
     14          SELECT 1 RANGE_ID FROM DUAL
     15          UNION ALL
     16          SELECT 2 RANGE_ID FROM DUAL
     17          )R
     18   WHERE C.RANGE_ID = R.RANGE_ID
     19   ORDER BY C.RANGE_ID;   CITY_ID   RANGE_ID
    ---------- ----------
             3          1
             4          2
             1          3
             2          4SQL>