1. 创建一个作业,每天执行一次,检查每天都有谁没有来
update HRDT_QDTable 
set Islater = 2 
where UserID in (
    select userid from user where userid not in (
        select userid from HRDT_QDTable 
        where datediff(day, QDDateTime, getdate()) = 0
    )
)2.
    select userid from user where userid not in (
        select userid from HRDT_QDTable 
        where datediff(day, QDDateTime, getdate()) = 0

解决方案 »

  1.   

    1、建议你将正常签到标志设为1,迟到设为2,不到设为3,初始化标志为0
    2、编写存储过程,每天凌晨(或绝对没有人签到的时间段),在签到表里自动添加所有人员 
       签到记录 , 记录所有人员的签到情况为0 ,
    2、在计划任务里编写存储过程,定时调用(签到时间),判断签到情况,签到时间已到,
       直接update 人员签到情况为3(不到),如果人员来了以后,他会签到,更改为2(迟到)
      

  2.   

    TO: arrow_gx(8088的脑袋)
    1。   可是我们的服务器也不是天天开着呀,我怎么知道你几点开呀!
    2。   计划任务不应该是Window的计划任务吧!
        
      

  3.   

    TO: arrow_gx(8088的脑袋)
    也可以让系统自动在今天有天的时候签到明天所有人的签到(设初始化标志为0)是吧!
      

  4.   

    TO: lfengxu(lfengxu)现在这个问题的关键是统计一个人那一天没有到呀!
      

  5.   

    统计一个人那一天没有到:
    Select Distinct QDDatetime from HRDT_QDTable
    where QDDatetime not in (select QDDatetime from HRDT_QDTable where userID = @userID )
      

  6.   

    TO: txlicenhe(马可&不做技术高手) 
    不行呀,结果是:QDDatetime                                             
    ------------------------------------------------------ 
    2003-09-08 08:08:03.000
    2003-09-08 08:08:37.000
    2003-09-08 08:10:36.000
    2003-09-08 08:11:08.000
    2003-09-08 08:12:20.000
    2003-09-08 08:19:12.000
    2003-09-08 08:19:25.000
    2003-09-08 08:19:51.000
    2003-09-08 08:20:52.000
    2003-09-08 08:20:56.000
    2003-09-08 08:21:46.000
    2003-09-08 14:14:16.000
    2003-09-08 14:21:20.000
    2003-09-09 08:04:38.000
    2003-09-09 08:04:50.000
    2003-09-09 08:05:19.000
    2003-09-09 08:05:25.000
    2003-09-09 08:06:32.000
    2003-09-09 08:10:04.000
    2003-09-09 08:15:40.000
    2003-09-09 08:16:29.000
    2003-09-09 08:20:12.000
    2003-09-09 08:23:01.000
    2003-09-09 08:23:31.000
    2003-09-09 08:31:44.000
    2003-09-09 08:57:46.000
    2003-09-09 09:51:22.000
    2003-09-10 07:58:59.000
    2003-09-10 07:59:53.000
    2003-09-10 07:59:55.000
    2003-09-10 08:04:56.000
    2003-09-10 08:05:12.000
    2003-09-10 08:07:34.000
    2003-09-10 08:11:07.000
    2003-09-10 08:12:43.000
    2003-09-10 08:14:38.000
    2003-09-10 08:18:36.000
    2003-09-10 08:23:22.000
    2003-09-10 08:23:38.000
    2003-09-10 08:24:08.000
    2003-09-10 08:26:37.000
    2003-09-10 08:27:18.000
    2003-09-10 08:27:58.000
    2003-09-10 08:48:35.000
    2003-09-11 08:10:27.000
    2003-09-11 08:10:42.000
    2003-09-11 08:10:57.000
    2003-09-11 08:16:30.000
    2003-09-11 08:16:58.000
    2003-09-11 08:18:48.000
    2003-09-11 08:23:08.000
    2003-09-11 08:23:40.000
    2003-09-11 08:25:31.000
    2003-09-11 08:25:32.000
    2003-09-11 08:26:29.000
    2003-09-11 08:26:30.000
    2003-09-11 08:26:54.000
    2003-09-11 08:39:09.000
    2003-09-11 08:46:27.000
    2003-09-11 13:03:06.000
      

  7.   

    1.作业不是操作系统的,但它的功能相当于Window的计划任务
    如果你自己写个VBS调度存储过程也行2.如果服务器不是24x7的运行的话,那你每天提早半个小时来,
    调用写好的的存储过程,okey3.niukl(小牛)也可以让系统自动在今天有天的时候签到明天所有人的签到(设初始化标志为0)是吧!
    不一定要这样,统计完后在使用一次左或右联接,即可
      

  8.   


    Select Distinct convert(varchar(10),QDDatetime,120) from HRDT_QDTable
    where convert(varchar(10),QDDatetime,120) not in (select convert(varchar(10),QDDatetime,120) from HRDT_QDTable where userID = @userID )
      

  9.   

    txlicenhe(马可&不做技术高手) 这个方法能行!谢谢大哥!还有两个问题呢?3。由于公司要求每人到公司后必须打开本系统!如何定时的更新OnLine.Xml文件,以确定打开系统的人数!(最好能用Asp+存储过程实现,不用客户端的reflash)