2016-10-14 2 views
-3
Employee_id Status 
111   Approved 
111   Approved 
111   Pending 
222   Approved 
222   Approved 

上記のようなものは、222だけが承認された解決策を得るべきです。私が試した何以下の条件のためのsql queury

select distinct employee_id, status 
from main_table 
+0

を説明してください。また、現在のクエリの試行を表示してください。 – jarlh

+0

select distinct employee_id、status from main_table – Shubhangi

答えて

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') 
+0

私はそれがここでは当てはまらないことを知っています。しかし、NOT INはNOT INよりも好きです。なぜなら、NOT INはNULL値に関してはややこしいからです。常に存在しないことにこだわるとあなたは安全です! – jarlh

1

は、私はあなたが「承認済み」以外の任意のステータスを持っていない従業員を探している、正しく理解していれば。これは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') 
+1

働いてくれてありがとう – Shubhangi

0
SELECT employee_id 
    FROM main_table a 
GROUP BY employee_id 
HAVING sum(case status when 'Approved' then 0 else 1 end) = 0 
関連する問題