当前登录的员工的SQL列表

明天

我正在尝试获取当前进入我们工厂的员工列表。计时事务使用以下命令更新计时表:“ dayreviewinoutflag = 0”用于计时输入,“ dayreviewinoutflag = 1”用于计时输出,我想回顾过去的72小时,以获取没有上次计时的员工的最新IN计时OUT时钟。

我觉得下面的查询差不多了,但是....

SELECT cc.* 
FROM   clocking cc 
       INNER JOIN (SELECT employeecode, 
                          Max(clockingdatetimeunrounded) AS MaxDateTime, 
                          CASE 
                            WHEN clocking.dayreviewinoutflag = 0 THEN Max( 
                            clockingdatetimeunrounded) 
                            ELSE NULL 
                          END                            AS InDateTime, 
                          CASE 
                            WHEN clocking.dayreviewinoutflag = 1 THEN Max( 
                            clockingdatetimeunrounded) 
                            ELSE NULL 
                          END                            AS OutDateTime 
                   FROM   clocking 
                   WHERE  clockingdatetimeunrounded >= 
                          Dateadd(hour, -72, Getdate()) 
                   GROUP  BY employeecode) groupedcc 
               ON cc.employeecode = groupedcc.employeecode 
                  AND cc.clockingdatetimeunrounded = groupedcc.maxdatetime 
                  AND groupedcc.indatetime > groupedcc.outdatetime 

在这一点上,我遇到了有关聚合函数或GROUP BY的错误,但是如果我尝试将'dayreviewinoutflag'添加到GROUP中,则不会得到任何结果。

对于任何反馈,我们都表示感谢。

下表数据应导致结果列表中不返回EMPLOYEECODE 11307

+--------------+---------------+-------------------------------+-------------------+
| AUTONUMBER    EMPLOYEECODE    CLOCKINGDATETIMEUNROUNDED       DAYREVIEWINOUTFLAG |
+--------------+---------------+-------------------------------+-------------------+
| 208945        11307           2015-11-10 17:31:00.000         1                  |
| 209284        11307           2015-11-11 07:59:00.000         0                  |
| 209372        11307           2015-11-11 17:01:00.000         1                  |
| 210162        11307           2015-11-13 07:30:00.000         0                  |
| 210185        11307           2015-11-13 10:30:00.000         1                  |
+--------------+---------------+-------------------------------+-------------------+
摇摆人

最初的问题是您正在clocking.dayreviewinoutflag查询中使用它,因此它必须包含在您的GROUP BY子句中。

但是,您编写的查询无法实现您的目标,您的内部选择正试图同时获取员工的最后入/出日期时间。您需要将这些查询拆分为单独的查询,然后将它们合并以进行比较:

WITH cte_LastClockIn AS
(
    SELECT employeecode, 
          Max(clockingdatetimeunrounded) AS InDateTime, 
    FROM   clocking 
    WHERE  clockingdatetimeunrounded >= 
          Dateadd(hour, -72, Getdate())
    AND clocking.dayreviewinoutflag = 0
    GROUP  BY employeecode
)

,cte_LastClockOut AS
(
    SELECT employeecode, 
          Max(clockingdatetimeunrounded) AS OutDateTime, 
    FROM   clocking 
    WHERE  clockingdatetimeunrounded >= 
          Dateadd(hour, -72, Getdate())
    AND clocking.dayreviewinoutflag = 1
    GROUP  BY employeecode
)


SELECT 
    cc.* 
FROM clocking cc 

INNER JOIN cte_LastClockIn lci
ON cc.employeecode = lci.employeecode
AND cc.clockingdatetimeunrounded = lci.InDateTime

INNER JOIN cte_LastClockOut lco
ON cc.employeecode = lco.employeecode

WHERE lci.InDateTime > lco.OutDateTime

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查看客户时如何使用Suitescript在Netsuite中获取当前登录的员工详细信息?

来自分类Dev

查看客户时,如何使用Suitescript在Netsuite中获取当前登录的员工详细信息?

来自分类Dev

登录的员工总数

来自分类Dev

决定给那些工资+通讯<1500的员工加息20% 获取员工列表将显示他当前的工资+通讯并修改

来自分类Dev

SQL:在给定时间内带有员工和员工职称的销售列表

来自分类Dev

在gremlin查询中显示特定组织的员工列表及其当前状态

来自分类Dev

如何从所有登录用户身份列表中获取当前登录请求的userIdentity?

来自分类Dev

当前登录用户的UPDATE sql表值?

来自分类Dev

基本的SQL员工

来自分类Dev

SQL查询可从某个位置获取在所有项目中工作的员工的列表

来自分类Dev

获取员工姓名和下一个工资高于当前员工的员工

来自分类Dev

有没有办法获取当前登录到CouchDB的用户列表?

来自分类Dev

与其他员工相比,如何选择SQL中的员工

来自分类Dev

SQL通过员工轮班匹配员工的时间(打卡时间)

来自分类Dev

无法从数据库获取员工列表

来自分类Dev

如何使用SQL在登录和注销之间获得当前用户

来自分类Dev

获取当前登录的用户和sql中有效存储过程的数量

来自分类Dev

服务器查询以查找员工的当前指定

来自分类Dev

将每个员工的员工详细信息作为JSON数组返回给SQL Server中的每个员工

来自分类Dev

C#:检测员工登录密码时出错

来自分类Dev

用户何时登录当前主体

来自分类Dev

如何查找当前登录的用户?

来自分类Dev

如何查找当前登录的用户?

来自分类Dev

权限和当前登录检查

来自分类Dev

对当前登录用户的列表进行排序,并显示包含最后排序的用户ID的一行。

来自分类常见问题

SQL显示员工的薪水比其经理高

来自分类Dev

SQL查询员工数据库

来自分类Dev

SQL显示员工的薪水比其经理高

来自分类Dev

为员工提供父母/子女的SQL递归

Related 相关文章

  1. 1

    查看客户时如何使用Suitescript在Netsuite中获取当前登录的员工详细信息?

  2. 2

    查看客户时,如何使用Suitescript在Netsuite中获取当前登录的员工详细信息?

  3. 3

    登录的员工总数

  4. 4

    决定给那些工资+通讯<1500的员工加息20% 获取员工列表将显示他当前的工资+通讯并修改

  5. 5

    SQL:在给定时间内带有员工和员工职称的销售列表

  6. 6

    在gremlin查询中显示特定组织的员工列表及其当前状态

  7. 7

    如何从所有登录用户身份列表中获取当前登录请求的userIdentity?

  8. 8

    当前登录用户的UPDATE sql表值?

  9. 9

    基本的SQL员工

  10. 10

    SQL查询可从某个位置获取在所有项目中工作的员工的列表

  11. 11

    获取员工姓名和下一个工资高于当前员工的员工

  12. 12

    有没有办法获取当前登录到CouchDB的用户列表?

  13. 13

    与其他员工相比,如何选择SQL中的员工

  14. 14

    SQL通过员工轮班匹配员工的时间(打卡时间)

  15. 15

    无法从数据库获取员工列表

  16. 16

    如何使用SQL在登录和注销之间获得当前用户

  17. 17

    获取当前登录的用户和sql中有效存储过程的数量

  18. 18

    服务器查询以查找员工的当前指定

  19. 19

    将每个员工的员工详细信息作为JSON数组返回给SQL Server中的每个员工

  20. 20

    C#:检测员工登录密码时出错

  21. 21

    用户何时登录当前主体

  22. 22

    如何查找当前登录的用户?

  23. 23

    如何查找当前登录的用户?

  24. 24

    权限和当前登录检查

  25. 25

    对当前登录用户的列表进行排序,并显示包含最后排序的用户ID的一行。

  26. 26

    SQL显示员工的薪水比其经理高

  27. 27

    SQL查询员工数据库

  28. 28

    SQL显示员工的薪水比其经理高

  29. 29

    为员工提供父母/子女的SQL递归

热门标签

归档