ich will ja nur die Eigenschaften der Filter sehen, welche bei der zugeordneten Tätigkeit den Status 3 haben.
Bsp:
Wartung 100 (entspricht Anlage 99) --> Rückluftfilter --> Tätigkeit erledigt (Status 3)
Wartung 100 (entspricht Anlage 99) --> Zuluftfilter --> Tätigkeit unerledigt (Status 0)
Wartung 101 (entspricht Anlage 100) --> Rückluftfilter --> Tätigkeit unerledigt (Status 0)
Wartung 101 (entspricht Anlage 100) --> Zuluftfilter --> Tätigkeit erledigt (Status 3)
Ergebnismenge soll sein aus Filtereinsatz:
Anlage 99, Rückluftfilter, Eigenschaften
Anlage 100, Zuluftfilter, Eigenschaften
Delphi-Quellcode:
ZQueryFilter.SQL.Text:= 'select ANLAGE,BEZEICHNUNG,ART,QUALITAT,GROSSE,MENGE ';
ZQueryFilter.SQL.Add('from FILTEREINSATZ where VERBRAUCH = 1 and ANLAGE in (select ANLAGE from WARTUNGL where NUMMER in (select NUMMER from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3))');
ZQueryFilter.SQL.Add('and BEZEICHNUNG in (select BEZEICHNUNG from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3 and NUMMER in (select NUMMER from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3)) ');
ZQueryFilter.SQL.Add('order by ANLAGE');
ZQueryFilter.ParamByName('Tatigkeit').Value:= '3205 * Filtermedium wechseln';
ZQueryFilter.Open;
damit kriege ich logischerweise wieder alle Datensätze aus FILTEREINSATZ weil sowohl die Anlage durch
(select ANLAGE from WARTUNGL where NUMMER in (select NUMMER from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3)
als auch die Bezeichnung durch
(select BEZEICHNUNG from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3 and NUMMER in (select NUMMER from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3)
vorhanden ist und über
in alle Varianten möglich sind.
ich müßte ANLAGE und BEZEICHNUNG zusammen aus einem Subselect mit
and mit den anderen Bedingungen verknüpfen (VERBRAUCH)
irgendwo habe ich einen Denkfehler