首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有嵌套Select和内连接的Insert语句

带有嵌套Select和内连接的Insert语句
EN

Stack Overflow用户
提问于 2016-11-18 01:03:33
回答 1查看 105关注 0票数 0

对于钟表机来说。

这将在午夜自动在表中为晚上忘记打卡的人设置一个时钟记录。我想让它插入一个时钟记录,和他们的时钟记录一样

员工表通常有,employeeID,employeeName,ClockTypeID ClockTypeID是员工当前状态的快速参考(工作(1)或不工作(2))时钟表有ClockID,ClockTypeID,EmployeeID,ClockDate,ClockTime

目前我有(以及我想要它做的事情)

代码语言:javascript
复制
INSERT INTO dbo.Clock(EmployeeID, ClockTypeID, ClockDate, ClockTime)
        SELECT EmployeeID, 2, getdate(), [Mininum clock time for current day for current employee]
        FROM Employee
        WHERE employee.ClockTypeID <> 2;

提前感谢!

编辑:更多信息

当查询在晚上运行时,我想在时钟表中为每个ClockTypeID为'1‘(表示他们仍在打卡)的员工插入一行我想要插入的行,我希望日期是当前日期,时间是当天(clocktypeID 1)第一个打卡的时间。这将以他们的打卡时间和日期与他们的打卡时间和日期相同结束。这意味着系统会显示他们当天已经工作了0个小时,这应该是对他们的上级的一个标志,以便他们可以手动更正。

EN

回答 1

Stack Overflow用户

发布于 2016-11-18 01:06:25

您的描述类似于以下内容:

代码语言:javascript
复制
INSERT INTO dbo.Clock(EmployeeID, ClockTypeID, ClockDate, ClockTime)
    SELECT EmployeeID, 2, CAST(getdate() as DATE), min(clocktime)
    FROM Employee
    GROUP BY EmployeeId, CAST(getdate() as DATE)
    HAVING SUM(CASE WHEN ClockTypeID = 1 THEN 1
                    WHEN ClockTypeId = 2 THEN -1
                    ELSE 0
               END) > 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40660894

复制
相关文章

相似问题

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