Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
Delphi 10.4 Sydney
|
AW: SQL Befehl über mehrere Tabellen
27. Feb 2018, 10:57
Hallo,
Du verwendest noch die alte Join-Syntax, das würde ich ändern
alt:
SELECT R1.Kundennr, SUM(R1.Kosten) AS Umsatz, SUM(A.Gewicht) AS Gesamtgewicht
FROM Artikel_s AS A, Rechnung_s AS R, Rechnungpos_s AS R1
WHERE A.Artikelnr=R1.Artikelnr AND R.RechnungNr=R1.RechnungNr
GROUP BY R1.Kundennr
ORDER BY R1.Kundennr
neu:
SELECT R1.Kundennr, SUM(R1.Kosten) AS Umsatz, SUM(A.Gewicht) AS Gesamtgewicht
FROM Artikel_s AS A
JOIN Rechnungpos_s AS R1 On A.Artikelnr=R1.Artikelnr
JOIN Rechnung_s AS R On R.RechnungNr=R1.RechnungNr
WHERE ???
GROUP BY R1.Kundennr
ORDER BY R1.Kundennr
D.h., die Where-Bedingungen des Joins stehen auch direkt beim Join
und das eigentlich Where filtert die Ergebnis-Menge
Das macht das ganze dann leichter zu lesen
1. Joins sind sauber erkennbar
2. Where-Filter sind sauber erkennbar
Heiko
|