Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: SELECT JOIN MIN richtig kombinieren?

  Alt 16. Nov 2007, 15:44
Zitat von DeddyH:
Wenn Du Aggregatfunktionen (hier MIN) verwendest, musst Du nach allen Nicht-Aggregatfeldern gruppieren.
Das hatte ich schon gelesen, aber nicht ausprobiert: Zum einen soll meine "echte" View 14 Felder liefern, und Gruppierung über 14 Felder ist doch ziemlich aufwändig. Zum anderen liefert das aber wirklich ein falsches Ergebnis:
SQL-Code:
SELECT ORTE2.Name, ORTE2.Alort,
       MIN(PLZ.PLZ),
       PLZ.Plz_Art,
       PLZ.Str-Verz
  FROM ORTE2
  JOIN PLZ ON PLZ.Alort = ORTE2.Alort
  GROUP BY PLZ.PLZ,
       /* ergänzt um: */
       ORTE2.Name, ORTE2.Alort, PLZ.Plz_Art, PLZ.Str-Verz
Zuerst wird offensichtlich das JOIN ausgeführt, und das führt zu doppelten Einträgen (alle PLZ zur gleichen Ort-ID/Alort). Erst danach kommt die Gruppierung mit MIN, und das hat natürlich keine "echten" Auswirkungen mehr.

Nochmal: Beim JOIN will ich nur einen Eintrag aus PLZ holen, nämlich die kleinste PLZ.

Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat