1.select data_input,count(*) from operation_info group by data_input
2.对于一周内的概念不理解

解决方案 »

  1.   

    select data_input,count(*)
    from operation_info
    where time between   一周的开始时间  and 一周的结束时间
    group by data_input
      

  2.   

    是本周内的吗?是的话可以用 datepart(week,datetime)
      

  3.   

    全部就是所有的啊.一周来,就是近来他在七天来所联系到的人.因为他有可能在一个月里联系到了30个人.在一周里只联系到3个人.那个DATETIME就是他所联系的人的日期.
      

  4.   

    1       lxy        2004-03-02
    2       lxy        2004-04-02
    3       lxy2        2004-04-02
    4       lxy2        2004-04-02
    5       lxy        2004-03-15
    6       lxy3        2004-04-02我现在要分类求和.按data_input分类.求出每个用户有多少条记录.然后再求出每个用户在一周内有多少条记录. 结果如下
    用户有多少条记录     用户在一周内有多少条记录
    "lxy"不要显示,只显示"3"      2
    "lxy2"不要显示,只显示"2"      2
    "lxy3"不要显示,只显示"1"      0
    看到第一行的结果没有.是3和2,因为还有一条是2004-03-02,假如今天是4.7号.也就是一周从1号到7号.所以只有二条
      

  5.   

    lxy在一周之内哪有两条:3.2; 4.2; 3.15。
    你要的只是本周之内有多少条记录吧?
      

  6.   

    下面的例子是以2004.07.23为“今天”的,你给出的时间数据中是没有本周的,我在表中加了两行:
    7       lxy        2004-07-20
    8       lxy        2004-07-18select allrecord,weekrecord
    from (
    select data_input,count(time) allrecord
    from operation_info
    group by data_input
    ) A
    left join 
    (
    select data_input,count(data_input) weekrecord
    from operation_info
    where datediff(day,time,getdate())<7
    group by data_input
    ) B
    on 
    A.data_input=B.data_input运行后的结果是:用户有多少条记录(allrecord) 用户在一周内有多少条记录(weekrecord)
    由于你说不要显示用户,所以下面是不显示用户的。allrecord  weekrecord
       5           2
       2           NULL
       1           NULL对于其中的NULL,你可以用一个语句查询weekrecord=null的行,然后赋值为0;
    也可以在程序读取时作再相关的处理。——lucky 2004.07.23