Irgendwie kann ich mich mit dieser "altmodischen" Form des JOIN nicht richtig anfreunden.
Da seh ich auch nie schnell was wie verknubblt ist.
Delphi-Quellcode:
SELECT R1.Kundennr, SUM(R1.Kosten) AS Umsatz, SUM(A.Gewicht) AS Gesamtgewicht
FROM Artikel_s AS A
JOIN Rechnung_s AS R ON R.RechnungNr = R1.RechnungNr
JOIN Rechnungpos_s AS R1 ON R1.Artikelnr = A.Artikelnr
GROUP BY R1.Kundennr
ORDER BY R1.Kundennr
Hat das
DBMS vielleicht ein Problem, weil der JOIN auf R kommt, bevor R1 gejoint wurde, weil die
DB die joins auch auf ähnliche Art versucht aufzulösen / zu optimieren.
Oder wird erstmal ALLES blind mit FULL JOIN genommen und dann das WHERE drüber?
Nja, tausch einfach mal versuchsweise Reihenfolge von Rechnung_s und Rechnungpos_s.
Bei dieser FORM kannst du auch probehalber ein
ON true--
einfügen oder aus einem JOIN einen LEFT JOIN machen.
abwechselnd bei allen JOINs und so schauen wer hängt, also wo dann plötzlich Daten auftauchen.