Ich muss nur die empid aus einer Tabelle extrahieren, deren Status nur A und B ist.Ich muss nur die empid aus einer Tabelle extrahieren, deren Status sowohl A als auch B ist.
EMPID Status Number
1 A X
1 B Y
Ich muss nur die empid aus einer Tabelle extrahieren, deren Status nur A und B ist.Ich muss nur die empid aus einer Tabelle extrahieren, deren Status sowohl A als auch B ist.
EMPID Status Number
1 A X
1 B Y
Es gibt mehrere Möglichkeiten, sich dieser Abfrage zu nähern. Eine Möglichkeit besteht darin, zu verifizieren, dass jeder Mitarbeiter nicht einen anderen Status als A
oder B
hat, der mit ihm verbunden ist, und dass es zwei verschiedene Status gibt, die mit ihm verbunden sind. Beachten Sie, dass die erste Bedingung, wenn sie wahr ist, bedeutet, dass die einzigen zwei unterschiedlichen Status, die vorhanden sind, A
und B
sein müssen.
SELECT EMPID
FROM yourTable
GROUP BY EMPID
HAVING SUM(CASE WHEN Status NOT IN ('A', 'B') OR Status IS NULL THEN 1 ELSE 0 END) = 0 AND
COUNT(DISTINCT Status) = 2
Demo hier:
@raviranjan Stellen Sie sicher, dass die Statusspalte nicht 'null' hat, wenn Sie diese Methode verwenden –
@TomJMuthirenthi Ich habe die Logik ein wenig aktualisiert, um die Möglichkeit zu behandeln, 'Status' ist' NULL'. –
Was haben Sie versucht? Was ist deine Frage/Problem? –
Fügen Sie einige weitere Zeilen mit Beispieldaten und auch das erwartete Ergebnis hinzu. Und zeigen Sie uns Ihren aktuellen Abfrageversuch. – jarlh
Welches DBMS benutzen Sie? Postgres? Orakel? –