SELECT 学号,姓名,
   SUM(第一次月考成绩)第一次月考成绩,
   SUM(第二次月考成绩)第二次月考成绩,
   SUM(第三次月考成绩)第三次月考成绩 
FROM TABLEB GROUP BY 学号,姓名

解决方案 »

  1.   

    你的意思是从tableb得到最后那个表?
      

  2.   

    那就用水哥的SELECT 学号,姓名,
       SUM(第一次月考成绩)第一次月考成绩,
       SUM(第二次月考成绩)第二次月考成绩,
       SUM(第三次月考成绩)第三次月考成绩 
    FROM TABLEB GROUP BY 
      

  3.   


    select 学号,姓名,
         (case when (datepart(mm,考试时间)=1) then 成绩  else 0 end) as '第一次月考成绩', 
         (case when (datepart(mm,考试时间)=2) then 成绩  else 0 end) as '第二次月考成绩',
          (case when (datepart(mm,考试时间)=3) then 成绩  else 0 end) as '第三次月考成绩'
    from  a
      

  4.   


    SELECT 学号,姓名,
       SUM(CASE WHEN 考试时间 ='20090103'THEN 成绩 ELSE 0 END)第一次月考成绩,
       SUM(CASE WHEN 考试时间 =20090304 THEN 成绩 ELSE 0 END)第二次月考成绩,
       SUM(CASE WHEN 考试时间 =20090203 THEN 成绩 ELSE 0 END)第三次月考成绩
    FROM TABLEB 
    GROUP BY  学号,姓名
      

  5.   


    要么就按一楼的,把你查询的那个当成一个表!!替换那个TABLEB
      

  6.   

    晕 水哥耍我 我 复制的时候发现学号,姓名不在里面SQL codeSELECT 学号,姓名,
       SUM(第一次月考成绩)第一次月考成绩,
       SUM(第二次月考成绩)第二次月考成绩,
       SUM(第三次月考成绩)第三次月考成绩 
    FROM TABLEB GROUP BY 学号,姓名
      

  7.   

    这个从table a 到结果表
      

  8.   

    修改一下------创建测试数据
    create table a
    (学号 char(3),  姓名 varchar(8),  考试时间 varchar(10),  成绩 int )insert into a
    select'H01',  '张三',  '20090103',  60  union  all 
    select 'H01',  '张三',  '20090304',  70   union  all 
    select 'H02',  '李四',  '20090203',  80 
    -------查询
    select 学号,姓名,
         max(case when (datepart(mm,考试时间)=1) then 成绩  else 0 end) as '第一次月考成绩', 
         max(case when (datepart(mm,考试时间)=2) then 成绩  else 0 end) as '第二次月考成绩',
         max(case when (datepart(mm,考试时间)=3) then 成绩  else 0 end) as '第三次月考成绩'
    from  a
    group by 学号,姓名
    order by 学号,姓名
    -----------------------------------
    学号  姓名  第一次月考成绩  第二次月考成绩    第三次月考成绩 
    H01 张三 60 0 70
    H02 李四 0 80 0
      

  9.   

    问题已解决。。我思路前面有问题。
    现在发上我的解答
    select xh,isnull(cast(01 as int),0) '01',
            isnull(cast(02 as int),0) '02',
            isnull(cast(03 as int),0) '03',
            isnull(cast(04 as int),0) '04',
    isnull(cast(05 as int),0) '05',
    isnull(cast(06 as int),0) '06',
    isnull(cast(07 as int),0) '07',
    isnull(cast(08 as int),0) '08',
    isnull(cast(09 as int),0) '09',
    isnull(cast(10 as int),0) '10',
    isnull(cast(11 as int),0) '11',
    isnull(cast(12 as int),0) '12'from tableb
    group by xh
    感谢楼上各位,呵呵,同样给分