SQL Server 2008 и выше.Не удалось найти решение или обходное решение
Предположим, у меня есть таблица базы данных с именем «Учителя», которая содержит «Сведения о учителях» в школе и другую таблицу с названием «Расписания», в которой содержатся их расписания. Иногда, если мне требуется автоматически назначать несколько часов учителю/преподавателям в определенный день случайным образом, например, когда один учитель отсутствует, другой учитель может принять это доступное время.
Как здесь:
Declare @hrs numeric(24, 6) = 3
SELECT T_Code
FROM Teachers
LEFT JOIN Schedules S
WHERE (SELECT 8 - ISNULL(SUM(S_HOURS),0) AS AVLHRS
FROM Schedules
WHERE S_Teacher = S.S_Teacher) < @hrs
ORDER BY ISNULL(S_HOURS,0), NEWID()
Но проблема здесь заключается в том, что только те преподаватели, которые запланированы рассчитываются таким образом я не получаю список всех учителей, доступных. Предположим, что у меня есть новый учитель, который даже не запланирован, также хотите заказать его в порядке, оставшемся от этого учителя. Тогда это не покажет, что Учитель, но я также хочу, чтобы этот учитель был замечен. Я не могу найти работу.
PS. Это не полный код, и он проверяет многие другие условия, но это единственное условие, вызывающее проблему, и я не могу показать полный код.
Я предполагаю, что новые учителя дона» t есть расписание. Если это так, вы отфильтровываете их из-за '(INNER) JOIN' – Nebi
. Они отфильтровываются даже с левым соединением из-за подзапроса –