abfragen - aber wie?

G

gma

Aktives Mitglied
Thread Starter
Dabei seit
18.02.2007
Beiträge
119
Reaktionspunkte
2
Hallo,

ich Frage eine Tabelle ab, die für einige Spalten (Spalte 1) doppelte Einträge hat. Ich möchte aber nur jeweils einen Eintrag von der Abfrage zurückbekommen:

und zwar soll im Falle, dass bezüglich Spalte 1 zwei oder mehr gleiche Einträge gefunden werden, in Spalte 2 nachgeschaut werden und dann jeweils der Eintrag für den höchsten Wert (Float) in Spalte 2 ausgegeben werden.

Brauche ich dafür ein Skript mit Schleifen oder geht das auch elegant in einer Abfrage?

gma
 
Du könntest wenigstens erwähnen, was für eine Datenbank gemeint ist.
Deine gesuchten Zauberwörter dürften "distinct" und "oder by" sein. :)
 
Außerdem könnten ein gerütteltes Maß MAX und ein kleine Prise AND nicht schaden.
 
Und als Dessert ein klein wenig DESCENDING.
 
Oh je,

sorry, ich war etwas in Eile als ich den Thread eröffnet habe. Vielen Dank für die Hinweise!!!

Verwendet wird MySQL, leider klappt es bei mir nicht:

SELECT DISTINCT * FROM Tabelle1, Tabelle2 WHERE Tabelle1.Spalte1 = Tabelle2.Spalte1 AND (Tabelle2.Spalte2 = SELECT MAX(Tabelle2.Spalte2))

Diese Abfrage gibt alle Daten aus, ungeachtet des Werts in Tabelle2.Spalte2!

SELECT DISTINCT * FROM Tabelle1, Tabelle2 WHERE Tabelle1.Spalte1 = Tabelle2.Spalte1 AND (Tabelle2.Spalte2 = MAX(Tabelle2.Spalte2))

gibt dagegen einen "invalid use of group function" Fehler!!

Wie muss es richtig lauten?

gma
 
Bin in mySQL nicht so drin, aber AFAIK müsste es heißen:

SELECT DISTINCT * FROM Tabelle1, Tabelle2 WHERE Tabelle1.Spalte1 = Tabelle2.Spalte1 AND (Tabelle2.Spalte2 = SELECT MAX(Tabelle2.Spalte2)) GROUP BY Spalte1

Ob DISCTINCT bei mySQL nötig ist, weiß ich nicht. Bei MS-SQL geht's ohne.
 
funzt!

Vielen Dank!

gma
 
Zurück
Oben Unten