解决方案 »

  1.   

    sql获取要求查询的工作日范围然后返回没有的数据
      

  2.   

    直接用TSQL来实现太繁
    有个想法: 每次处理一个人, 把这个人在时间范围内的所有数据拿出来后, 进行比较,因为时间范围已知, 所以可以判断出哪些天没有记录. 而后再处理下一个人, 这样TSQL简单许多.
      

  3.   


    我照您说的建了一张表,然后通过关联查询也能查到我要的效果。但是存放工作日的话有没有简单点的方法,因为每周五天的工作日存起来比较繁琐。create table tb
    (
    ID int primary key identity(1,1),
    Datetime varchar(50) 
    )
    insert into tb values('2015-01-26')
    insert into tb values('2015-01-27')
    insert into tb values('2015-01-28')
    insert into tb values('2015-01-29')
    insert into tb values('2015-01-30')
    insert into tb values('2015-02-02')select convert(varchar(10),Datetime,120) from tb where Datetime not in(select tb.Datetime from ManHour 
    join tb on ManHour.DateTime=tb.Datetime where UserID='hailong.yang')
      

  4.   

    或者你先写个循环,把周一到周五insert进去
    然后节假日和串休特殊手动单独处理一下,能省点事不过在我看来,还不如直接在excel表里做好直接粘数据库里去,为了这点玩意做个程序怪费劲的,而且还没啥大用
      

  5.   

    接楼上的,你可以在后台事件设定呀,做个假日安排表,把这一年的假日写入到一张表中,然后再通过这个假日时间表,去生成工作日j时间表。这样你只要Left Join工作日表就能取出哪天没有填数据的了。SO EASY
      

  6.   

    其实却是是可以先把周一到周五当工作日,周六周日当休息日
    然后节假日和串休单独处理的
    不过这样做真的没啥意义
    反正你一年才排一次,在excel表里做好,鼠标一拽,就自动出来了,比写循环判断省事多了