Case Anweisung in Bezug auf Untergruppen

Zehbart

Benutzer
Beiträge
5
Hallo in die Runde,
ich habe eine Tabelle nach folgender Art:
upload_2021-7-28_23-15-56.png




Ziel ist es, für jede Bon Nummer zu schauen, ob die Einheit 5 vorkommt und, falls ja, nur die Einträge der jeweiligen Bonnummer anzuzeigen, deren Uhrzeit nach dem Eintrag mit Einheit vorkommt.

Ich möchte für obiges Beispiel also dieses Ergebnis erhalten:

upload_2021-7-28_23-20-49.png





Ich hatte bereits diesen Ansatz, der mir das richtige Ergebnis liefert, wenn ich nur eine einzige Bonnummer hätte:

Code:
Select * from testdb
where Uhrzeit > (case
                when (select Max(Uhrzeit) from testdb where Einheit=5) is null
                then (Select convert(time,'00:00:00'))
                Else (select Max(Uhrzeit) from testdb where Einheit=5)
                End)

Wie aber muss ich es anstellen, wenn dieser Code quasi jede einzelne Bonnummer separat durchlaufen soll?



 

Anhänge

  • upload_2021-7-28_23-17-22.png
    upload_2021-7-28_23-17-22.png
    62 KB · Aufrufe: 2
Werbung:
Konnte es selber beantworten:

select *
from (select *,
min(case when Einheit= 5 then Uhrzeit end) over (partition by Bonnummer) as Uhrzeit_5
from testdb
) testdb
where Uhrzeit_5 is null or
Uhrzeit > Uhrzeit_5;
 
Zurück
Oben