数据库表情况如下:SQL> select * from testit order by id,starttime;        ID STARTTIME   TIMECOUNT
---------- ---------- ----------
         1 10-1月 -07          1
         1 11-1月 -07         10
         1 12-1月 -07         20
         1 15-1月 -07         10
         2 01-1月 -07         10
         2 02-1月 -07         20
         2 03-1月 -07          5
         2 08-1月 -07         25我的问题是想列出那些连续7天内工作时间超过40小时的ID号。
上述的数据中,查询结果为ID=1的满足要求。而ID为2的则不满足要求。
请问这个SQL语句怎么写啊?
这个功能应该跟周统计有些区别。

解决方案 »

  1.   

    select a.id 员工, a.STARTTIME 开始超时工作的日期, sum(b.timecount) 工作时间
    from testit A
    inner join testit B on a.ID = b.ID
    where b.STARTTIME - a.STARTTIME <= 7天
       and b.STARTTIME - a.STARTTIME > =0天
    group by a.id, a.STARTTIME
    having sum(b.timecount) > 40时间加减语法写的不好,请理会意图
      

  2.   

    select   a.id   //员工ID//,   a.STARTTIME   //开始工作的日期//,   sum(b.TIMECOUNT)   //工作时间// 
    from   testit   A 
    inner   join   testit   B   on   a.ID   =   b.ID 
    where   
         b.STARTTIME   -   a.STARTTIME   <=   7 
          and   b.STARTTIME   -   a.STARTTIME   >   =0 
    group   by   a.id,   a.STARTTIME 
    having   sum(b.timecount)   <= 40 
    帮你改一下