Я пытаюсь определить циклическое назначение задач пользователям.
У меня есть таблица задач и пользователей, и я хочу назначить новые задачи пользователям в группе, но ни один пользователь не может иметьболее 2 заданий.
Я хочу назначить первое задание пользователю, имеющему самую старую отметку даты и времени.
Текущая настройка:
#newtasks
taskname:
task6
task7
назначенные задания:
userid task last_update_date
11 task1 2018-05-29 15:30:17.410
22 task2 2018-05-30 15:30:17.410
22 task3 2018-05-31 15:30:17.410
33 task4 2018-06-01 15:30:17.410
Что я хочу видеть, ID пользователя 22 не должен получать задачу, поскольку у них есть 2 задачи:
#assignedtasks:
userid task last_update_date
11 task1 2018-05-29 15:30:17.410
11 task6 2018-06-01 16:30:17.410
22 task2 2018-05-30 15:30:17.410
22 task3 2018-05-31 15:30:17.410
33 task4 2018-06-01 15:30:17.410
33 task7 2018-06-01 16:30:17.410
Код для создания таблиц:
IF Object_id ('TEMPDB..#newtasks') IS NOT NULL
DROP TABLE #newtasks
CREATE TABLE #newtasks
(
taskname VARCHAR(8)
)
INSERT INTO #newtasks
VALUES ('task6')
INSERT INTO #newtasks
VALUES ('task7')
SELECT * from #newtasks
IF Object_id ('TEMPDB..#assignedtasks') IS NOT NULL
DROP TABLE #assignedtasks
CREATE TABLE #assignedtasks
(
userid INT,
task VARCHAR(8),
last_update_date DATETIME
)
INSERT INTO #assignedtasks
VALUES ('11','task1',getdate()-4)
INSERT INTO #assignedtasks
VALUES ('22','task2',getdate()-3)
INSERT INTO #assignedtasks
VALUES ('22','task3',getdate()-2)
INSERT INTO #assignedtasks
VALUES ('33','task4',getdate()-1)
SELECT * FROM #assignedtasks