Case when datediff(d, 入职日, '2007-12-26')>=0 then 全勤奖 --26日之前的都有奖
     when datediff(d, '2007-12-26', 入职日)<=2 and datepart(dw,入职日)=1 then 全勤奖 --27,28日如果是星期一的话也有奖
     else 0 end --其他的没有奖

解决方案 »

  1.   

    Case when day(入职日) <= 26 then '全勤奖'
         when day(入职日) > 26 and (datepart(weekday , 入职日) = 7 or datepart(weekday , 入职日) = 1) then '全勤奖' 
         else '无全勤奖'
    end
      

  2.   

    --1
    Case when day(入职日) <= 26 then '全勤奖'
         when day(入职日) <=28 and (datepart(weekday , 入职日) = 7 or datepart(weekday , 入职日) = 1) then '全勤奖' 
         else '无全勤奖' end
    end--2
    Case when day(入职日) <= 26 then 全勤奖
         when day(入职日) <=28 and (datepart(weekday , 入职日) = 7 or datepart(weekday , 入职日) = 1) then 全勤奖 
         else 0 end
    end
      

  3.   

    --对,改为这样:
    Case when day(入职日) <= 26 then '全勤奖'
         when (day(入职日) = 26 or day(入职日) = 27) and (datepart(weekday , 入职日) = 7 or datepart(weekday , 入职日) = 1) then '全勤奖' 
         else '无全勤奖'
    end
      

  4.   

    不明白lz为什么要通过"2007-12-01"进行两步dateadd运算来得出日期