Employee_id Status ----------------------- 111 Approved 111 Approved 111 Pending 222 Approved 222 Approved
В моем столе, который выше, только 222 должен получить одобрение, дайте решение.
Что я пробовал:
select distinct employee_id, status from main_table
mysql,sql,select,
Попробуй это:
SELECT DISTINCT employee_id FROM main_table WHERE employee_id NOT IN (SELECT s.employee_id FROM main_table as s WHERE Status != 'Approved')
Если я правильно понимаю, вы ищете сотрудников, которые не имеют статуса, кроме «Approved». Это можно выразить как not existsусловие:
not exists
SELECT DISTINCT employee_id FROM main_table a WHERE NOT EXISTS (SELECT * FROM main_table b WHERE a.employee_id = b.employee_id AND b.status != 'Approved')
SELECT employee_id FROM main_table a GROUP BY employee_id HAVING sum( case status when 'Approved' then 0 else 1 end ) = 0