Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

AW: SQL Befehl über mehrere Tabellen

  Alt 27. Feb 2018, 11:00
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Feb 2018 um 11:03 Uhr)
  Mit Zitat antworten Zitat