Я пытаюсь реализовать приложение назначения задач Сотрудника.
В моей базе данных SQL-сервера есть таблица сведений о смене сотрудника. Мне нужно выбрать сотрудников в текущее время и выбрать одного сотрудника для задачи из списка сотрудников, которые в настоящее время находятся в смене, с использованием кругового планирования
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)
);
В этом запросе выводится
+----+------------+----------+------------+-------------+-----------------+--------------------------+--------------------------+
| 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 |
+----+------------+----------+------------+-------------+-----------------+--------------------------+--------------------------+
Мне нужен только один выбор сотрудника за раз с использованием Round Robin. Могу ли я сделать это внутри самого сервера SQL?