visittime                state
2012-05-07 15:12:11       1
2012-05-07 16:14:32       2
2012-05-07 17:13:58       32012-05-08 15:12:11       1
2012-05-08 16:14:32       1
2012-05-08 17:13:58       12012-05-09 15:12:11       3
2012-05-09 16:14:32       3
2012-05-09 17:13:58       3
查7-9号显示 
日期          state=1     state=2   state=3
7号            1条              1条        1条       详细
8号            3条               0条       0条 
9号            0条               0条       3条比如点击日期后面的详细后要查询 7号
时间    state=1     state=2   state=3
1-2点     0条        0条          0条
2-3点
3-4点
.....
15-16点  1条          0条         0条
16-17    1条          0条         0条
....
23-00    0条          0条         0条
数据显示 格式个上面一样不过是把日期换成了时间
这两条语句怎么写啊

解决方案 »

  1.   

    SELECT DATE_FORMAT(visittime ,'%Y%m%d'),
    sum(case when state = 1 then 1 else 0 end) as state1,
    sum(case when state = 2 then 1 else 0 end) as state2,
    sum(case when state = 3 then 1 else 0 end) as state3
    from Ytable group by DATE_FORMAT(visittime ,'%Y%m%d')
    ---
    更详细的类似的
      

  2.   

    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...