select CustomerID,
    Course1=sum(case CourseID when 1 then  Grade end),
    Course2=sum(case CourseID when 2 then  Grade end),
    [Sum]=sum(Grade)
from Grade group by CustomerID

解决方案 »

  1.   

    select CustomerID,
        Course1=sum(case CourseID when 1 then  Grade end),
        Course2=sum(case CourseID when 2 then  Grade end),
        [Sum]=sum(Grade)
    from Grade 
    group by CustomerID
    order by CustomerID
      

  2.   

    --如果 CourseID 值不固定
    declare @s varchar(4000)
    set @s=''
    select @s=@s+','+quotename(CourseID)+'=sum(case CourseID when '+rtrim(CourseID)+' then Grade end)'
    from Grade group by CourseID
    exec('select CustomerID'+@s+',[sum]=sum(Grade)
    from Grade group by CustomerID')