Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: SQL Befehl über mehrere Tabellen

  Alt 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
  Mit Zitat antworten Zitat