![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: direkt
SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Hallo,
wieder ein Problem - heut is kein doller Tag... Also: Ich versuche via MySQL den höchsten Wert einer Gruppe herauszufinden. Ich bekomme den höchsten Wert zwar angezeigt, aber die Datensätze werden gemischt. Hier ein Beispiel: Tabelle:
Code:
Als ResultSet erhalte ich folgendes (falsches) Ergebnis
ID | TITEL | TS
1 Test1 123456 1 Test2 123457 2 Bla1 100000 2 BlaNeu 100001
Code:
Wie man sehen kann, wir der Titel vom ersten Datensatz genommen und die größte Zeit in der Gruppe. Das ist aber falsch. Richtig wäre bei "ID 1": Test 2 / 123457.
ID | TITEL | TS
1 Test1 123457 2 Bla1 100001 Meine SQL sieht mittlerweile so aus:
Code:
Was ist daran falsch. Ich verzweifel an der einfachen Geschichte... :(
SELECT id, titel, MAX( ts ) AS 'ts'
FROM TABELLE GROUP BY id ORDER BY ts DESC Danke |
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Eigentlich sollte der SQL gar nicht ausgeführt werden können.
Wenn Du Gruppierst mußt Du alle Felder die nicht mit MAX,SUM,AVG etc. berechnet werden in die Gruppierung mit aufnehmen, in Deinem Fall titel. EDIT: das was Du suchst funktioniert zumindest unter MS-SQL so:
Code:
Select titel,TABELLE.TS from TABELLE
join ( SELECT id, MAX( ts ) AS 'ts' FROM TABELLE GROUP BY id ) a on a.ID=TABELLE.ID and a.TS=TABELLE.TS |
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Ist das nicht nur bei Firebird so? :gruebel:
|
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Zitat:
|
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Noch besser...
jetzt sieht meine SQL so aus:
Code:
und er liefert mir ALLE Datensätze wieder zurück.
SELECT id, titel, MAX( ts ) AS 'ts'
FROM tabelle GROUP BY id, titel; |
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
probier mal ob mein EDIT unter MYSQL läuft
|
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
@bummi: Es läuft, liefert aber auch ALLE Datensätze zurück
|
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
den unter EDIT meine ich, der sollte entweder bei Dir nicht funktionieren oder das gewünschte liefern
SQL-Code:
Select titel,TABELLE.TS from TABELLE
join ( SELECT id, MAX( ts ) AS 'ts' FROM TABELLE GROUP BY id ) a on a.ID=TABELLE.ID and a.TS=TABELLE.TS |
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Ja, genau die SQL habe ich ausgeführt. Sie liefert leider auch alle Datensätze zurück.
|
AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Zitat:
Bummis Code sollte das richtige Ergebnis liefern, mein Beispielcode sieht im Grunde genauso aus und funktioniert hier bei mir. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz