AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL-Abfrage mit Max und Group liefert falsche Ergebnisse
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

Ein Thema von TheMiller · begonnen am 24. Nov 2010 · letzter Beitrag vom 24. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:36
Datenbank: MySQL • Version: 5 • Zugriff über: direkt
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:
ID | TITEL | TS
1   Test1    123456
1   Test2    123457
2   Bla1     100000
2   BlaNeu  100001
Als ResultSet erhalte ich folgendes (falsches) Ergebnis
Code:
ID | TITEL | TS
1   Test1    123457
2   Bla1     100001
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.

Meine SQL sieht mittlerweile so aus:

Code:
SELECT id, titel, MAX( ts ) AS 'ts'
FROM TABELLE
GROUP BY id
ORDER BY ts DESC
Was ist daran falsch. Ich verzweifel an der einfachen Geschichte...

Danke
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:42
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
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (24. Nov 2010 um 15:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:46
Ist das nicht nur bei Firebird so?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#4

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:47
Ist das nicht nur bei Firebird so?
Sag bloß, das läuft bei MySQL tatsächlich so... in MSSQL kriegst du das so definitiv nicht hin!
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:49
Noch besser...

jetzt sieht meine SQL so aus:

Code:
SELECT id, titel, MAX( ts ) AS 'ts'
FROM tabelle
GROUP BY id, titel;
und er liefert mir ALLE Datensätze wieder zurück.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:51
probier mal ob mein EDIT unter MYSQL läuft
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:53
@bummi: Es läuft, liefert aber auch ALLE Datensätze zurück
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:54
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
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von mkinzler (24. Nov 2010 um 16:41 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:55
Ja, genau die SQL habe ich ausgeführt. Sie liefert leider auch alle Datensätze zurück.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#10

AW: SQL-Abfrage mit Max und Group liefert falsche Ergebnisse

  Alt 24. Nov 2010, 15:56
und er liefert mir ALLE Datensätze wieder zurück.
Ist ja auch kein Wunder, jetzt gruppierst du ja schließlich auch nach dem Titel

Bummis Code sollte das richtige Ergebnis liefern, mein Beispielcode sieht im Grunde genauso aus und funktioniert hier bei mir.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz