首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试着理解如何创建一个工资单查询来压缩打卡记录

试着理解如何创建一个工资单查询来压缩打卡记录
EN

Stack Overflow用户
提问于 2019-07-12 02:39:40
回答 1查看 29关注 0票数 1

我正在尝试自学SQL。我是一个跳入深水区来学游泳的人,我想我快要被水淹没了。目前,除了基本的Select、From、Where和Group By之外,我对形成SQL命令知之甚少。我正要看一些udemy课程来帮助我,但如果我有一个真实的例子,我可以帮助我将一些概念落地,我学得更好。

我在一个表中有一些数据,用于一个人在一天中打卡上班和下班。我希望将一天的时间压缩为一个时钟时间,一个时钟时间和一天的总小时数。

所以我还不太了解所有的sql部分是如何协同工作来形成一个查询的,我也不知道这些部分的执行顺序。到目前为止,我所能做的就是从表中选择列,并按日期和时间对它们进行排序。

例如,我有一个这样的表:

select Empl_id, AdjClockInDate, AdjClockInTime, AdjClockOutDate, AdjClockOutTime, TotAdjTime From AttendDet Where EmplCode = '33' Order By EmplCode Asc, SearchDate desc, AdjClockInTime Asc

empl_id AdjClockInDate AdjClockInTime AdjClockOutDate AdjClockOutTime TotAdjTime 33 07/01/2019 07:00 07/01/2019 12:00 5 33 07/01/2019 12:00 07/01/2019 12:30 .5 33 07/01/2019 12:30 07/01/2019 17:50 5

我想要得到的是将常见的日期和empl_id组合到一个单独的日期视图中,如下所示:

empl_id AdjClockInDate AdjClockInTime AdjClockOutDate AdjClockOutTime TotAdjTime 33 07/01/2019 07:00 07/01/2019 17:50 10

忽略.5小时的休息时间,并将非休息时间相加。

我认为我需要首先按日期和时间对它们进行排序,然后在列中获取时钟的第一个条目,然后获取时钟输出列的最后一个条目。这就是我能说的最多,因为我真的不知道我可以使用什么或者如何使用它来执行sql命令。我希望,通过解决这个问题,我正在努力解决它,这将极大地帮助我理解这些课程,这样我就可以在大脑中与一些有形的东西建立联系。现在我知道这超出了我的能力范围,但通过观察并分解它,了解其中的各个部分,将会对我有很大的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-07-12 02:42:31

您似乎想要一个基本的聚合查询:

代码语言:javascript
运行
复制
select Empl_id, AdjClockInDate, MIN(AdjClockInTime), AdjClockOutDate, 
       MAX(AdjClockOutTime), SUM(TotAdjTime)
from AttendDet
where Empl_id = '33'
group by Empl_id, AdjClockInDate, AdjClockOutDate;

这是一个非常基本的查询,建议您在深入研究之前先学习SQL的基础知识。

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

https://stackoverflow.com/questions/56995469

复制
相关文章

相似问题

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