SELECT ID,
SUM(CASE WHEN TYPE='USE' THEN 1 ELSE 0 END)use ,
SUM(CASE WHEN TYPE='buy' THEN 1 ELSE 0 END)buy ,
SUM(CASE WHEN TYPE='out' THEN 1 ELSE 0 END)out 
FROM TB GROUP BY ID 

解决方案 »

  1.   

    SELECT
        id,
        SUM(CASE WHEN type='use' THEN count ELSE 0 END) AS `use`,
        SUM(CASE WHEN type='buy' THEN count ELSE 0 END) AS `buy`,
        SUM(CASE WHEN type='out' THEN count ELSE 0 END) AS `out`
    FROM tb
    WHERE `time` BETWEEN '2009-02-10' AND '2009-02-15'
    GROUP BY id
      

  2.   

    SELECT
        id,
        SUM(IF(type='use',count,0)) AS `use`,
        SUM(IF(type='buy',count,0)) AS `buy`,
        SUM(IF(type='out',count,0)) AS `out`
    FROM tb
    WHERE `time` BETWEEN '2009-02-10' AND '2009-02-15'
    GROUP BY id
      

  3.   

    --sql server 的脚本
    select id,sum(case when type='use' then count else 0 end) [use],
    sum(case when type='buy' then count else 0 end) [buy],
    sum(case when type='out' then count else 0 end) [out]
    from tb group by id
      

  4.   

    --sql server 的脚本 
    select id,sum(case when type='use' then count else 0 end) [use],
    sum(case when type='buy' then count else 0 end) [buy],
    sum(case when type='out' then count else 0 end) [out]
    from tb where time between '2009-02-10' AND '2009-02-14'
    group by id
      

  5.   

    --呵呵,看錯
    SELECT ID,
    SUM(CASE WHEN TYPE='USE' THEN [COUNT] ELSE 0 END)[use] ,
    SUM(CASE WHEN TYPE='buy' THEN [COUNT] ELSE 0 END)buy ,
    SUM(CASE WHEN TYPE='out' THEN [COUNT] ELSE 0 END)out 
    FROM TB GROUP BY ID 
      

  6.   


    select id ,
           sum(case when type = 'use' then count else 0 end) as [use],
           sum(case when type = 'buy' then count else 0 end) as [buy],
           sum(case when type = 'out' then count else 0 end) as [out]
    from tb 
    group by id