首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL -使用日期表计算员工上次工作的天数?

SQL -使用日期表计算员工上次工作的天数?
EN

Stack Overflow用户
提问于 2018-12-13 00:44:32
回答 1查看 34关注 0票数 0

我有一个表,显示员工最后一次工作的时间。它看起来像下面这样

代码语言:javascript
运行
复制
EMPID           Sickness          Date
23333             N            01-FEB-2018
23333             N            02-FEB-2018
23333             N            10-FEB-2018
23333             N            11-FEB-2018

我想要做的是连接到一个日期表,并添加一个额外的列,它显示了一个雇员将已经失业>=超过5天的日期。基于上述内容的示例输出如下所示

代码语言:javascript
运行
复制
EMPID           Sickness          NewDate              AbsFlagAdded
23333             N            01-FEB-2018              0
23333             N            02-FEB-2018              0
23333             N            03-FEB-2018              0
23333             N            04-FEB-2018              0
23333             N            05-FEB-2018              0
23333             N            06-FEB-2018              0
23333             N            07-FEB-2018              1
23333             N            08-FEB-2018              0
23333             N            09-FEB-2018              0
23333             N            10-FEB-2018              0
23333             N            11-FEB-2018              0

2月7号的AbsFlagAdded被标记为1,因为这是eMPID23333基于原始表连续第5天休假。

有没有人能帮上忙?我以前并没有真正使用过日期表。感谢任何帮助

杰西

EN

回答 1

Stack Overflow用户

发布于 2018-12-13 01:04:03

下面是在case中使用datediff的一个例子

代码语言:javascript
运行
复制
select t.empid, d.dt, 
       case when datediff(day, max(t.dt), d.dt) = 5 then 1 else 0 end as absflaggadded
from dates d
    left join yourtable t on d.dt >= t.dt
group by t.empid, d.dt
order by d.dt

这使用dates作为日期表。请注意outer join检查--如果使用null,这将确保您获得匹配结果,而不是equals值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53747628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档