//這裏顯示的科目是安按什么順序排列的?改這一句select @s='',@i=0
select @i=@i+1
,@s=@s+case 
when @i=7 then ',其他=sum(case when 科目 in('''+科目+''''
when @i>7 then ','''+科目+''''
else ',['+科目+']=sum(case 科目 when '''+科目+''' then 成绩 else 0 end)'
end
from 表
group by 科目
order by case 科目 when '化學' then 0 when '体育' then 1 when '物理' then 2 when  '政治' then 3 when '英語' then 4 when '語文' then 5 else 6 end

解决方案 »

  1.   

    虽然用一句sql语句可以实现,但我觉得还是将它插入到一个临时表,再排序比较好
      

  2.   

    這個問題我一貼上去,就想起來了,只要加一order by sum(成绩) desc 即可
    select @s='',@i=0
    select @i=@i+1
    ,@s=@s+case 
    when @i=7 then ',其他=sum(case when 科目 in('''+科目+''''
    when @i>7 then ','''+科目+''''
    else ',['+科目+']=sum(case 科目 when '''+科目+''' then 成绩 else 0 end)'
    end
    from 表
    group by 科目 order by sum(成绩)
    if @i>6 set @s=@s+') then 成绩 else 0 end)'
    exec('select 學號'+@s+' from 表 group by 學號')
      

  3.   

    這個問題我一貼上去,就想起來了,只要加一order  by  sum(成绩)  desc  即可  
    select  @s='',@i=0  
    select  @i=@i+1  
               ,@s=@s+case    
                           when  @i=7  then  ',其他=sum(case  when  科目  in('''+科目+''''  
                           when  @i  >7  then  ','''+科目+''''  
                           else  ',['+科目+']=sum(case  科目  when  '''+科目+'''  then  成绩  else  0  end)'  
                           end  
    from  表  
    group  by  科目  order  by  sum(成绩)desc   
    if  @i  >6  set  @s=@s+')  then  成绩  else  0  end)'  
    exec('select  學號'+@s+'  from  表  group  by  學號')  
      

  4.   


    這個問題我一貼上去,就想起來了,只要加一order  by  sum(成绩)  desc  即可  
    select  @s='',@i=0  
    select  @i=@i+1  
               ,@s=@s+case    
                           when  @i=7  then  ',其他=sum(case  when  科目  in('''+科目+''''  
                           when  @i  >7  then  ','''+科目+''''  
                           else  ',['+科目+']=sum(case  科目  when  '''+科目+'''  then  成绩  else  0  end)'  
                           end  
    from  表  
    group  by  科目  order  by  sum(成绩)desc   
    if  @i  >6  set  @s=@s+')  then  成绩  else  0  end)'  
    exec('select  學號'+@s+'  from  表  group  by  學號')