如上图,每个事业部下面分为几类问题,每类问题下面对应几种系统,要统计每个责任人的在每个事业部下面的解决个数。
最终想形成这样的结果,请如何写:
  
责任人   事业部      问题类别  对应系统
施俊发   乘用车3     系统问题3   DMS3
施俊发   多功能车2    新需求2    合格证1
施俊发   多功能车2    新需求2    其他1
大概就是这样的要求,或许类似的检索结果,谢谢

解决方案 »

  1.   

    select 责任人,事业部, 问题类别,对应系统 from Your_table order by 责任人;
      

  2.   

    select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
    ) from tablename t where t.dyxt='DMS'
    UNION ALL 
    select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
    ) from tablename t where t.dyxt='合格证'
    UNION ALL 
    select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
    ) from tablename t where t.dyxt='其他'
      

  3.   

    --或者:
    select 责任人,事业部,count(*) from Your_table group by 责任人,事业部;
      

  4.   

      这个应该是count(t.事业部),count(t.问题类别),count(t.对应系统)吧?
      

  5.   

    实测数据:CREATE TABLE T130
    (
        创建时间    DATE,
        提出人      VARCHAR2(20),
        事业部      VARCHAR2(20),
        问题类别    VARCHAR2(20),
        对应系统    VARCHAR2(20),
        解决时间    DATE,
        责任人      VARCHAR2(20)
    );INSERT INTO T130 VALUES(to_date('2011-03-15', 'YYYY-MM-DD'), '王之梅', '多功能车', '新需求',   '其它', to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');
    INSERT INTO T130 VALUES(to_date('2011-03-31', 'YYYY-MM-DD'), '姚平',   '乘用车',   '系统问题', 'DMS',  to_date('2011-03-31', 'YYYY-MM-DD'), '施俊发');
    INSERT INTO T130 VALUES(to_date('2011-03-29', 'YYYY-MM-DD'), '姚平',   '乘用车',   '系统问题', 'DMS',  to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');
    INSERT INTO T130 VALUES(to_date('2011-03-21', 'YYYY-MM-DD'), '姚平',   '乘用车',   '系统问题', 'DMS',  to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');
    INSERT INTO T130 VALUES(to_date('2011-03-18', 'YYYY-MM-DD'), '王之梅',   '多功能车',   '新需求', '合格证',  to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');CREATE VIEW ViewT130 AS 
    (SELECT 事业部 AS NAME, COUNT(1) AS  cn FROM T130 GROUP BY 事业部
    UNION
    SELECT 问题类别 AS NAME, COUNT(1) AS cn FROM T130 GROUP BY 问题类别
    UNION 
    SELECT 对应系统 AS NAME, COUNT(1) AS cn FROM T130 GROUP BY 对应系统
    );
    实测结果: