table( UserName ,VisitTime )
 UserName VisitTime 
 A1        2005-01-15
 B1        2005-01-20
 A1        2005-02-04
 A1        2005-02-05
 B1        2005-01-02
我想得到这样的查询结果
1。从最小的日期开始算第一天,30天算一个月
    月数    UserName   访问次数
    一月    A1          20
    一月    B1          25
    二月    A1          23
    二月    B1          21
2。从最小日期开始,按正常月份算, 如A1的一月份就只有15天。。,查询结果如上

解决方案 »

  1.   

    有这样一个表包括两个字段UserName,VisitTime
    table( UserName ,VisitTime )
    用户访问的记录如下
     UserName VisitTime 
     A1        2005-01-15
     B1        2005-01-20
     A1        2005-02-04
     A1        2005-02-05
     B1        2005-01-02
    我想得到这样的查询结果
    1。从最小的日期开始算第一天,30天算一个月
        月数    UserName   访问次数
        一月    A1          20       也就是说从2005-01-15 到本2005-02-14(加30天)
        一月    B1          25
        二月    A1          23
        二月    B1          21
    2。从最小日期开始,按正常月份算, 如A1的一月份就只有15天。。,查询结果如上 月数    UserName   访问次数
        一月    A1          20       也就是说从2005-01-15 到本2005-01-31
        一月    B1          25
        二月    A1          23       也就是说从2005-02-01到本2005-02-30    二月    B1          21
      

  2.   

    你的意思是不是想计算一下 a1或者B1这个用户在各个月里,访问的次数???
    如果是的话,麻烦把查询要求和得到的结果写得规范点,容易弄得别人看不懂
    那你的第一个例子是不是
    一月 a1  3
    一月 b2  2
      

  3.   

    to : liangfei1983(lliangfei) 是的
    有这样一个表包括两个字段UserName,VisitTime
    table( UserName ,VisitTime )
    用户访问的记录如下
     UserName VisitTime 
     A1        2005-01-15
     A1        2005-02-04
     A1        2005-02-05
     B1        2005-01-02
     B1        2005-01-20
    我想得到这样的查询结果
    1。从最小的日期开始算第一天,30天算一个月
        月数    UserName   访问次数
        一月    A1          3       也就是说从2005-01-15 到本2005-02-14(加30天)
        一月    B1          2
        二月    A1          0
        二月    B1          0
    2。从最小日期开始,按正常月份算, 如A1的一月份就只有15天。。,查询结果如上 月数    UserName   访问次数
        一月    A1          1       也就是说从2005-01-15 到本2005-01-31
        一月    B1          2
        二月    A1          2       也就是说从2005-02-01到本2005-02-30    二月    B1          0
      

  4.   

    table( UserName ,VisitTime )
     UserName VisitTime 
     A1        2005-01-15
     B1        2005-01-20
     A1        2005-02-04
     A1        2005-02-05
     B1        2005-01-02
    我想得到这样的查询结果
    1。从最小的日期开始算第一天,30天算一个月
        月数    UserName   访问次数
        一月    A1          20
        一月    B1          25
        二月    A1          23
        二月    B1          21
    select convert(char(7),VisitTime,120) 月份
    ,UserName,count(*) '访问次数' from [table]
    group by convert(char(7),VisitTime,120),UserName2。从最小日期开始,按正常月份算, 如A1的一月份就只有15天。。,查询结果如上
    ---有点不太明白