2016-10-04 3 views
1

Beispieldaten (Oracle DB)Rufen Sie die Ergebnisse, die bestimmte Werte

HID Result ResultDate 
6150 Interim 23-03-1990 
6150 FINAL  24-03-1990 
6150 Interim 25-05-1990 
6180 Interim 30-08-2016 
6190 Interim 31-08-2016 

ich all das die HID haben zu finden sind gebeten worden, nicht die Endergebnisse nicht haben.

Und die erwartete Ausgabe ist

HID Result ResultDate 
    6180 Interim 30-08-2016 
    6190 Interim 31-08-2016 

Antwort

2

Hier ist eine Option count mit case:

select hid 
from yourtable 
group by hid 
having count(case when result = 'FINAL' then 1 end) > 0 

Das gibt 6180 und 6190, da sie mit result = 'final' keine entsprechenden Zeilen haben.


Ihre Änderungen gegeben, dann ist hier eine Option not exists:

select * 
from yourtable y 
where not exists (
    select 1 
    from yourtable y2 
    where y.hid = y2.hid and y2.result = 'FINAL' 
) 
+0

Perfekt :) Vielen Dank –