Запрос SQL для условия ниже

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,

-3

Ответов: 3


0 принят

Попробуй это:

SELECT DISTINCT employee_id
FROM main_table
WHERE employee_id NOT IN (SELECT s.employee_id FROM main_table as s
                          WHERE Status != 'Approved')

1

Если я правильно понимаю, вы ищете сотрудников, которые не имеют статуса, кроме «Approved». Это можно выразить как 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')

0
SELECT employee_id
  FROM main_table a
 GROUP BY employee_id
HAVING sum( case status when 'Approved' then 0 else 1 end ) = 0
MySQL, MS SQL, выберите,
Похожие вопросы