Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何找到当前工作的所有员工,并使用循环选择他们_Sql_Sql Server_Database - Fatal编程技术网

Sql 如何找到当前工作的所有员工,并使用循环选择他们

Sql 如何找到当前工作的所有员工,并使用循环选择他们,sql,sql-server,database,Sql,Sql Server,Database,我正在尝试实现一个员工任务分配应用程序 我的SQL server数据库中有一个员工轮班明细表。我需要选择当前时间的员工,并使用循环调度从当前轮班的员工列表中为任务选择一名员工 CREATE TABLE [dbo].[Tbl_Shift_Details]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Shift_Type] [varchar](10) NOT NULL, [Week_day] [int] NOT NULL, [Log

我正在尝试实现一个员工任务分配应用程序

我的SQL server数据库中有一个员工轮班明细表。我需要选择当前时间的员工,并使用循环调度从当前轮班的员工列表中为任务选择一名员工

CREATE TABLE [dbo].[Tbl_Shift_Details](
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [Shift_Type] [varchar](10) NOT NULL,
    [Week_day] [int] NOT NULL,
    [Login_Time] [varchar](5) NULL,
    [Logout_Time] [varchar](5) NULL,
    [Assignees_Name] [varchar](100) NULL,
    [Assignees_Email] [varchar](500) NULL,
    [Team_Lead_Email] [varchar](30) NULL
) ON [PRIMARY]
GO
我可以使用下面的查询选择当前工作的员工

SELECT *
FROM [dbo].[Tbl_Shift_Details]
WHERE Week_day = DATEPART(weekday, Dateadd(hh,-5.00,getdate())) and
       ((Logout_Time > Login_Time and 
         DATEPART(HOUR,Dateadd(hh,-5.00,getdate())) >= Login_Time and 
         DATEPART(HOUR,Dateadd(hh,-5.00,getdate())) <= Logout_Time) or
        (Logout_Time < Login_Time and DATEPART(HOUR,Dateadd(hh,-5.00,getdate())) >= Login_Time)
       );
我一次只需要使用循环法选择一名员工。我可以在SQL server本身内部执行此操作吗

+----+------------+----------+------------+-------------+-----------------+--------------------------+--------------------------+
| ID | Shift_Type | Week_day | Login_time | Logout_Time | Assignees_Name  |     Assignees_Email      |     Team_Lead_Email      |
+----+------------+----------+------------+-------------+-----------------+--------------------------+--------------------------+
|  1 | 1st        |        2 |          8 |          18 | John Doe        | johndoe@aol.com          | jimmykimmel@fun.com      |
|  7 | 2nd        |        2 |         12 |          21 | Noah Arc        | Noaharc@aol.com          | jimmykimmel@fun.com      |
| 11 | 3rd        |        2 |         15 |          24 | John Everyman   | johneveryman@gmail.com   | BodrumSalvador@yahoo.com |
| 16 | 2nd        |        2 |         12 |          21 | Theodore Handle | theodorehandle@yahoo.com | BodrumSalvador@yahoo.com |
| 21 | 3rd        |        2 |         15 |          24 | Sue Shei        | SueShei@dxc.com          | jimmykimmel@fun.com      |
+----+------------+----------+------------+-------------+-----------------+--------------------------+--------------------------+