CNAME                LB            SCORE      sbb
-------------------- -------------------------------------
数学                 期中                 50         60
                  期末                 60         60
语文                期中                 50         60
                 期末                 60         60现在得出上表`问如何将  score 和SBB两列的数据SUM到一起(不能用期末和期中做为条件SUM,因为实际上那个字段有几十个)数学                 期中                 50         60
                  期末                 60         60
语文                期中                 50         60
                 期末                 60         60
                期末                 120         120
                期中                 100         120

解决方案 »

  1.   

    我的意思是,将score列的期中SUM出来,期末SUM出来。
                将SBB列的期中SUM出来,期末SUM出来。
                等等`````~`好多列`~~~`!
      

  2.   

    CNAME      LB            SCORE      sbb 
    数学        期中              50        60 
              期末              60        60 
    语文        期中              50        60 
              期末              60        60 上面是现在查询出来的结果!预想出来结果是下面`!
    CNAME          LB       
    数学             期中                50        60 
                   期末                60        60 
    语文             期中                50        60 
                   期末                60        60     
                   期末                120        120 ----这是我想要的结果
                   期中                100        120 ----这是我想要的结果
      

  3.   

     NAME     COURSE     MARK     MARK_SB    
     -------  ---------  -------  ---------- 
     Chinese  MIDDLE     70       80         
     Chinese  END        80       90         
     Math     END        80       90         
     Math     MIDDLE     90       100      
    select NAME, COURSE, sum(MARK),sum(MARK_SB),GROUPING_id(NAME,course)
    from t_  group by rollup(NAME,COURSE) having GROUPING_id(NAME,course) <3 NAME     COURSE     MARK     MARK_SB    
     -------  ---------  -------  ---------- 
     Chinese  MIDDLE     70       80         
     Chinese  END        80       90         
     Math     END        80       90         
     Math     MIDDLE     90       100      
      

  4.   

    上面结果贴错了
     NAME     COURSE     SUM(MARK)     SUM(MARK_SB)     GROUPING_ID(NAME,COURSE)    
     -------  ---------  ------------  ---------------  --------------------------- 
     Math     END        80            90               0                           
     Math     MIDDLE     90            100              0                           
     Math     (null)     170           190              1                           
     Chinese  END        80            90               0                           
     Chinese  MIDDLE     70            80               0                           
     Chinese  (null)     150           170              1                            6 record(s) selected [Fetch MetaData: 0/ms] [Fetch Data: 0/ms] 
      

  5.   

    declare V_SQL VArchar2(1000);
    V_COLUMNNAME VARCHAR2(50);currsor ccc as
    select column_name from   user_tab_columns where data_type='NUMBER' and table_name=''
    根据这个写个循环语句
    V_SQL := 'select  NAME  ,   COURSE ';ccc into V_COLUMNNAME V_SQL := V_SQL || ',sum('||V_COLUMNNAME||')';end;V_SQL := V_SQL || 'from tablename group by NAME  ,   COURSE ';
    然后运行V_SQL;大致意思就是这个。