字段名称:客户ID(int)  客户名称(varchar(20))  创建时间(date)  状态(int)
注明:状态(1为普通会员,2为白金会员,3过期会员)问题:现需要统计从当前时间开始,最近七天里  普通会员和过期会员 每天的数量
结果显示:
普通会员数   过期会员数   日期 
    20         3        02/25  (2月25号)
   10          0        02/24
   45          1        02/23
   10          2        02/22
     .
    .
    .麻烦各位大哥大姐帮帮忙!! 不胜感谢~date统计

解决方案 »

  1.   

    老弟 你的是PL/SQL 你走错地方了。
      

  2.   

    select sum(case when 状态='1'then 1 else 0 end) '普通会员',
    sum(case when 状态='3'then 1 else 0 end) '过期会员',t.date
    from tableName t
    where t.date>sysdate+(-7)
    group by t.date
    没给列名,不能写详细的,反正就这个意思。
      

  3.   

    每天的数量该怎么去统计?是按照状态来,还是按照去重后的客户id
    一 按照状态来,4楼的做法是正解
    二 按照去重后的客户id算,就应该用count distinct 算
      

  4.   

    恩,四楼的没有问题.用decode也行。
      

  5.   

    列的值为散列值时,推荐使用DECODE,好像效率比较高点
    4楼的SQL语句有可能会有点问题,如果date字段包含 时分秒,结果可能不准确