SELECT
    *
FROM
    (SELECT
        left(charge,4) as charge,
        date(stattime) as stattime,
        count(*) as num
    FROM
        Table
    WHERE
        ((left(charge,3)='spc' or left(charge,3)='spw'  or left(charge,3)='spm')) AND
        stattime>='2011-06-01'
    GROUP BY
        left(charge,4),
        date(stattime) 
    ) a pivot (max(num) for charge in (spca,spcb,spcc,spcd,spwb,spma,spmb,spmc,spmd)) b求改成mysql

解决方案 »

  1.   

    MYSQL中没有pivot,用SUM(IF()) OR SUM(CASE WHEN),动手做一下吧,有问题再问
      

  2.   


    SELECT
        sum(if(charge='spc',num,0)) as spc,
        sum(if(charge='spw,num,0)) as spw
    FROM
        (SELECT
            left(charge,4) as charge,
            date(stattime) as stattime,
            count(*) as num
        FROM
            Table
        WHERE
            ((left(charge,3)='spc' or left(charge,3)='spw'  or left(charge,3)='spm')) AND
            stattime>='2011-06-01'
        GROUP BY
            left(charge,4),
            date(stattime) 
        ) a是不是这样写的?问下
    sum(if(charge='spw,num,0)) as spw
    这个0的含义是什么呀?