Использование EXISTS
SELECT e.ename
FROM EMPLOYEE e
WHERE EXISTS(SELECT NULL
FROM VENTINGMAC vm
WHERE vm.enum = e.enum
GROUP BY vm.day, vm.enum
HAVING COUNT(vm.coke) > 3)
ИСПОЛЬЗОВАНИЕ IN
SELECT e.ename
FROM EMPLOYEE e
WHERE e.enum IN (SELECT vm.enum
FROM VENTINGMAC vm
GROUP BY vm.day, vm.enum
HAVING COUNT(vm.coke) > 3)
Использование JOIN:
SELECT e.ename
FROM EMPLOYEE e
JOIN (SELECT vm.enum
FROM VENTINGMAC vm
GROUP BY vm.day, vm.enum
HAVING COUNT(vm.coke) > 3) y ON y.enum = e.enum
Разбивка
Мясо запросазаключается в проверке таблицы VENTINGMAC, особенно с агрегатными функциями (что означает необходимость в предложении GROUP BY).Я предполагаю, что VENTINGMAC.day
содержит только ДАТУ (год, месяц, день) - нет времени, чтобы усложнить ситуацию.Вам нужно сгруппировать по человеку и по дню в таблице, чтобы иметь возможность подсчитать значения coke
, как вы видите в предложении HAVING
.