Я пытаюсь выбрать все записи из набора данных, где 1 из записей соответствует критерию. У меня есть таблица данных, которые содержат часы, отработанные человеком в день. Мне нужно выбрать все записи для человека за эту неделю, если для одной записи в течение этой недели флаг 'logged' установлен на 'N'. Вот пример данных:
t_hours:
Name Week Weekday Hours Logged
===============================
Jim 1 Mon 8 Y
Jim 1 Wed 8 Y
Jim 1 Fri 8 Y
Jim 2 Mon 8 Y
Jim 2 Wed 8 Y
Bill 1 Mon 8 N
Bill 1 Tue 8 Y
Bill 1 Wed 8 Y
Bill 1 Thu 8 Y
Bill 2 Mon 8 Y
Bill 2 Tue 8 Y
Я хочу написать запрос, который обновит все записи для рабочей недели людей до Logged = 'N', если у них есть один деньгде Logged = 'N'. Но я не могу понять, как даже выбрать записи. Вот записи, которые я хочу обновить:
Name Week Weekday Hours Logged
===============================
Bill 1 Mon 8 N
Bill 1 Tue 8 Y
Bill 1 Wed 8 Y
Bill 1 Thu 8 Y
Я пробовал обычный выбор, но не могу понять, как иметь два коррелированных подзапроса в предложении where:
SELECT * FROM t_hours
WHERE (Name = (SELECT t1.Name FROM t_hours t1
where t1.Name = t2.Name and t1.Week = t2.Week and
t1.Logged = 'N') and
Week = (SELECT t2.Week FROM t_hours t2
where t1.Name = t2.Name and t1.Week = t2.Week and
t2.Logged = 'N')
но это не работает, любая помощь очень ценится.