Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
609 Beiträge
 
Delphi XE5 Professional
 
#1

in-Klausel in großen Tabellen

  Alt 8. Feb 2019, 11:58
Datenbank: MySQL • Version: 5 • Zugriff über: UniDac
Hallo Zusammen,

ich komme bei einer Abfrage leider nicht weiter und bitte Euch um Hilfe.

Ich habe eine sehr große Tabelle mit Auftragsdaten aus mehrere Jahren. Die Tabelle ich so vereinfacht aufgebaut:

AuftragsNr-----Arbeitsgang------Fertigdatum
4710815------------10------------20181215
4710815------------20------------20181218
4710815------------30------------20181223
4710815------------40------------20190110
4710815------------50------------20190115
7878787------------10------------20181015
7878787------------20------------20181018
7878787------------30------------20181023
7878787------------40------------20181110
7878787------------50------------20181115
5656565------------10------------20190115
5656565------------20------------20190118
5656565------------30------------20190123
5656565------------40------------20190210
5656565------------50------------20190215
andere Aufträge.

Ich brauche jetzt eine Abfrage, die mir alle Aufträge mit allen Arbeitsgänge auswirft, die bei einem Arbeitsgang das Fertigdatum in 2018 haben.
Also soll das Ergebnis so aussehen:
AuftragsNr-----Arbeitsgang------Fertigdatum
4710815------------10------------20181215
4710815------------20------------20181218
4710815------------30------------20181223
4710815------------40------------20190110
4710815------------50------------20190115
7878787------------10------------20181015
7878787------------20------------20181018
7878787------------30------------20181023
7878787------------40------------20181110
7878787------------50------------20181115

Den Auftrag 5656565 nicht, weil er keinen Arbeitsgang hat, der in 2018 abgeschlossen wurde.

Mein Versuch
Delphi-Quellcode:
select * from tabelle
where AuftragNr in (
select AuftragNr from Tabelle where Year(FertigDatum) = 2018 group by AuftragNr)
Aber weil die Tabelle recht groß ist, raucht mir die Abfrage ab. Hat jemand eine schlauere Lösung, die ich ausprobieren könnte?

Vielen Dank
Patrick
Patrick

Geändert von Ykcim ( 8. Feb 2019 um 12:01 Uhr)
  Mit Zitat antworten Zitat