Thema: Frage zu JOIN

Einzelnen Beitrag anzeigen

harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
199 Beiträge
 
Delphi 12 Athens
 
#1

Frage zu JOIN

  Alt 26. Jan 2017, 08:11
Datenbank: Firebird • Version: 2.1 • Zugriff über: Delphi/IBDAC
Hallo,

ich habe folgende Abfrage:

with DM1.DataModule1.IBCArtikelQuery do
begin
Close;
SQL.Clear;
SQL.Add('select A.*,E.EINHEIT,W.WARENGRUPPE,L.FIRMA,L.KREDITORENNR ');
SQL.Add('from ARTIKEL A ');
SQL.Add('left outer join EINHEITDB E on A.VERPEINHEIT=E.EID ');
SQL.Add('left outer join EINHEITDB E on A.VERBRAUEINHEIT=E.EID ');
SQL.Add('left outer join EINHEITDB E on A.LAGBESTEINHEIT=E.EID ');
SQL.Add('left outer join EINHEITDB E on A.MINBESTEINHEIT=E.EID ');
SQL.Add('left outer join WARENGRUPPEDB W on A.WARENGRUPPE=W.WID ');
SQL.Add('left outer join LIEFERANT L on A.LIEFERANT1=L.LID ');
ExecSQL;
end;

Diese meldet bei der zweiten (und natürlich den folgenden) "left outer join" folgenden Fehler: "Alias E conflicts with an alias in the same statement". Ok...soweit klar, woher der Fehler kommt. Eine Lösung ist, das E in den weiteren statements durch andere Buchstaben zu ersetzen - aber irgendwie nicht sonderlich elegant.
Hat jemand noch eine andere ("elegantere") Lösung? Insbesondere in Hinsicht auf eine mögliche, zukünftige "Vermehrung" der Einheiten-Felder, wird es irgendwann unübersichtlich...

Hartmut
Hartmut
  Mit Zitat antworten Zitat