Как найти всех сотрудников, работающих в настоящее время, и подобрать их с помощью Round Robin - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь реализовать приложение назначения задач Сотрудника.

В моей базе данных 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...