У меня есть две таблицы с именем Employee
и Time
. Я хочу назначить OnTrack=y
, если все TaskList кода сотрудника 1E являются y.Обновить другую таблицу на основе значения таблицы в SQL
Я попробовал это, и я застрял
UPDATE Employee
SET OnTrack = 'y'
FROM Employee e
WHERE e.Code IN
INNER JOIN (SELECT EmployeeCode FROM Time WHERE status = 'P') permanent
ON permanent.Employeecode = e.Code
AND permanent.Employeecode NOT IN
(SELECT EmployeeCode FROM Time t WHERE t.EmployeeCode=permanent.Employeecode and t.tasklist<>'y')
Мой код обновляет только один ряд. Кто-нибудь может помочь?
Сотрудник таблица:
Code Name Hours OnTrack
***********************************
1E SCOTT 32
2E LISA 32
3E MARK 32
Время таблица
Code Employeecode Status workingHours TaskList
********************************************************
1A 1E P 8 Y
2A 1E P 8 Y
3A 1E P 8 N
4A 2E T 8 Y
5A 2E T 0 Y
6A 3E P 8 Y
В результате того, что это ожидалось в таблице сотрудников, OnTrack статус должен быть обновлен, если весь его код работника «Y» в таблице времени как указано ниже:
Code Name Hours OnTrack
1E SCOTT 24 N
2E LISA 12 Y
3E MARK 0 Y
Я не уверен, как работает запрос. –
Какие РСУБД это? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –
@ user3331421, пожалуйста, отформатируйте свои последние обновления, чтобы сделать их удобочитаемыми. – objectNotFound