有一表包含客户名称,和客户的拜访时间。
怎么统计出每天的客户拜访记录,没有的话显示0
如:客户名 时间
      张三    2009-04-01
      王四    2009-04-01
      张三    2009-04-03
得到 时间      记录数
       04-01     2
       04-02     0
       04-03     1
考虑过建立一个日期表来进行连接查询,这样的话就得把所有的时间放到表里,然后还得每天去这个日期表人工添加日期。

解决方案 »

  1.   

    最好的办法就是如你所说,再建立一个日期表。不需要每天去维护,一次性把一年所有日期都放进去。这个你可以通过EXCEL先拖出来一年的日期。然后一次性insert到表中。
      

  2.   

    如果实在不想用这个日期表。则可以考虑用存储过程来实现,但远不如有个日期表方便。如果日期之间的最大连续空档日期天数不大的话,比如2天或3天,你还可以通过 
    select 时间 ...
    union all
    select 时间-1 ...
    union all
    select 时间-2 ...
    union all
    select 时间-3 ...来得到所有日期。虽然少了个表,但执行效率极差。
      

  3.   

    只有建立一个日期表,与工作表连接
    select date_format(b.time,'%m-%d'),COUNT(b.time) FROM TT a 
    left join lsb b on a.时间=b.time
    GROUP BY date_format(b.time,'%m-%d')