Ja, jedes Feld, zu der eine Einheit gehört, kann eine andere Einheit haben (Verpackungseinheit=1 Karton, Verbrauchseinheit=1 Stück, etc.) - daher muss ich die Einheit immer wieder abfragen. Meine (unelegante, aber funktionierende) Lösung:
Delphi-Quellcode:
with DM1.DataModule1.IBCArtQuery
do
begin
Close;
SQL.Clear;
SQL.Add('
select A.*,E.EINHEIT as EE,F.EINHEIT as EF,G.EINHEIT as EG,H.EINHEIT as EH,W.WARENGRUPPE as WG,L.FIRMA,L.KREDITORENNR,Z.BEZEICHNUNG as LP ');
SQL.Add('
from ARTIKEL A ');
SQL.Add('
left outer join EINHEITDB E on A.VERPEINHEIT=E.EID ');
SQL.Add('
left outer join EINHEITDB F on A.VERBRAUEINHEIT=F.EID ');
SQL.Add('
left outer join EINHEITDB G on A.LAGBESTEINHEIT=G.EID ');
SQL.Add('
left outer join EINHEITDB H on A.MINBESTEINHEIT=H.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 ');
SQL.Add('
left outer join LAGERPLATZ Z on A.LAGERPLATZID=Z.LPID ');
ExecSQL;
end;
Nochmal: mir ging es darum, eine elegantere Abfrage zu generieren...aber offensichtlich muss das wohl so gehen (und tut es ja auch!). Danke für euren Input!!!
Hartmut