table
 date   pageid   pv
 0801    1001    100
 0801    1002    200
 0801    1003    100
 0801    1004    150
 0802    1001    200
 0802    1002    100
 0802    1003    300
 0802    1004    250
 0803    1001    300
 0803    1002    200
 0803    1003    400
 0803    1004    450要求结果 
pageid    0801   0802   0803
1001      100    200    300
1002      200    100    200
1003      100    300    250
1004      150    250    450

解决方案 »

  1.   

    select pageid 
         , (case date
            when 0801 then pv
            else 0
            end) as 0801
         , (case date
            when 0802 then pv
            else 0
            end) as 0802
         , (case date
            when 0803 then pv
            else 0
            end) as 0803
    from table
      

  2.   


    SELECT PAGEID,
           SUM((CASE DATE
                 WHEN 0801 THEN
                  PV
                 ELSE
                  0
               END)) AS 0801,
           SUM((CASE DATE
                 WHEN 0802 THEN
                  PV
                 ELSE
                  0
               END)) AS 0802,
           SUM((CASE DATE
                 WHEN 0803 THEN
                  PV
                 ELSE
                  0
               END)) AS 0803
      FROM TABLEA
     GROUP BY PAGEID;