现有表:
carclass userdept     耗油     deptLayerOrder
小轿车   工会          1        2001
的士头   工会          2        2001
旅行车   工会          3        2001
小轿车   工会下属      3        20010001
旅行车   工会下属      4        20010001
小轿车   工会下属下属   3       200100010002
旅行车   工会下属下属   4       200100010005
现在要求.按部门统计每种车的试用情况!
-----------------------------------------------------------------小轿车      工会           其他部门,和工会同等级(2002)
旅行车       x(耗油)         x(耗油) 
的士头       x(耗油)         x (耗油)统计.必须统计.到所有下属部门的耗油情况.相加

解决方案 »

  1.   

    统计耗油情况!
    ------------------下面的是统计结果.
    就是不怎么理解 .group 分组怎么分组判断.数据.然后相加.
    我也不晓得怎么说出我不理解的意思.!
    新项目.没做过oracle这么复杂的查询.能推荐点资料不.!
      

  2.   


    select userdept,carclass,sum(耗油)
    from table_A t
    group by t.userdept,carclass
      

  3.   

    with t as (
      select '小轿车' carclass, '工会'         userdept,1 oil, '2001'         deptlayerorder from dual union all
      select '的士头' carclass, '工会'         userdept,2 oil, '2001'         deptlayerorder from dual union all
      select '旅行车' carclass, '工会'         userdept,3 oil, '2001'         deptlayerorder from dual union all
      select '小轿车' carclass, '工会下属'     userdept,3 oil, '20010001'     deptlayerorder from dual union all
      select '旅行车' carclass, '工会下属'     userdept,4 oil, '20010001'     deptlayerorder from dual union all
      select '小轿车' carclass, '工会下属下属' userdept,3 oil, '200100010002' deptlayerorder from dual union all
      select '旅行车' carclass, '工会下属下属' userdept,4 oil, '200100010005' deptlayerorder from dual)
    SELECT carclass, userdept, oil
      FROM (SELECT DISTINCT deptlayerorder, t.userdept
              FROM t
             WHERE length(t.deptlayerorder) = 4) a,
           (SELECT substr(t.deptlayerorder, 1, 4) deptlayerorder,
                   t.carclass,
                   SUM(t.oil) oil
              FROM t
             GROUP BY t.carclass, substr(t.deptlayerorder, 1, 4)) b
     WHERE a.deptlayerorder = b.deptlayerorder;
      

  4.   

    SELECT substr(t.deptlayerorder, 1, 4) deptlayerorder,    --2011
                   t.carclass,
                   SUM(t.oil) oil
              FROM t
             GROUP BY t.carclass, substr(t.deptlayerorder, 1, 4)   
    不能理解这段.为什么能统计下属部门的呢!.
    可能最终原因还是不理解SQL的执行过程。