mysql表名叫 eee id name renwulb(任务类别) content(任务细节) atime(时间)                            1 小王 扫地                      清扫了好               2013-04-04 12:07:06                            2 小王 擦玻璃                    擦不干净               2013-05-05 12:07:06                            3 小李 做饭                       做不好                   2013-03-08 12:07:06全部人员表叫ppp   里面是   id name全部任务表叫rrr   里面是     id renwu(任务类别) 想要的结果是 某一个人 一年里,每个月 扫地几次,擦玻璃几次,做饭,几次输出结果:小王的 2013全年      月份         扫地    擦玻璃    做饭         201301           10        5            0201302           21        0            6201303           0          11           3mysqlsql求sql

解决方案 »

  1.   

    mysql表名叫 eee id name renwulb(任务类别) content(任务细节) atime(时间)      
                    1 小王 扫地                 清扫了好             2013-04-04 12:07:06 
                    2 小王 擦玻璃               擦不干净               2013-05-05 12:07:06
                    3 小李 做饭                  做不好                   2013-03-08 12:07:06全部人员表叫ppp   里面是   id name
    全部任务表叫rrr   里面是     id renwu(任务类别)
     想要的结果是 某一个人 一年里,每个月 扫地几次,擦玻璃几次,做饭,几次
    输出结果:小王的 2013全年      月份         扫地    擦玻璃    做饭
                                  201301      10        5        0
                              201302       21        0       6
                              201303       0         11      3
      

  2.   

    select name,
    DATE_FORMAT(atime,'%Y%m') as `月份`,
    sum(if(renwulb='扫地',1,0)) as `扫地`,
    sum(if(renwulb='擦玻璃',1,0)) as `擦玻璃`,
    sum(if(renwulb='做饭',1,0)) as `做饭`
    from eee
    group by name
      

  3.   

    http://blog.csdn.net/acmain_chm/article/details/4283943
     MySQL交叉表
    在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx(  id int primary key,  c1 c...
      

  4.   

    SELECT sum(a) as '扫地', sum(b) as '擦玻璃', sum(c) as '做饭', name, DATE_FORMAT(atime,'%Y%m') as '月份',
    from (
    select
    if(renwulb=1,1,0) as a,
    if(renwulb=2,1,0) as b,
    if(renwulb=3,1,0) as c,
    name,atime
    from dd
    )x
    GROUP BY name,left(atime,7);版主写的好像有问题! 我测试了下版主写的不能按月来的! 只是按名称来.即便是 group by上renwulb 还是不行的! 不正确的. 敬请版主斧正!
      

  5.   

    select name,
        DATE_FORMAT(atime,'%Y%m') as `月份`,
        sum(if(renwulb='扫地',1,0)) as `扫地`,
        sum(if(renwulb='擦玻璃',1,0)) as `擦玻璃`,
        sum(if(renwulb='做饭',1,0)) as `做饭`
    from eee
    group by name,DATE_FORMAT(atime,'%Y%m')