AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bei doppeltem Eintrag, Record mit der höheren ID wählen
Thema durchsuchen
Ansicht
Themen-Optionen

Bei doppeltem Eintrag, Record mit der höheren ID wählen

Ein Thema von bassman · begonnen am 10. Mär 2010 · letzter Beitrag vom 12. Mär 2010
Antwort Antwort
bassman

Registriert seit: 8. Apr 2008
18 Beiträge
 
Delphi 2009 Professional
 
#1

Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 10. Mär 2010, 15:44
Datenbank: mySQL • Zugriff über: mySQLDac
Hallöchen an all SQL-Spezialisten

ich habe z.B. folgende Tabelle

ID, Name, Vorname, Nummer
10, Schmid, Peter, 1234
20, Meier, Hans, 0815
30, Meier, Hans, 0815
40, Meier, Franz, 4711
50, Meier, Franz, 4711

und möchte folgende Ausgabe erreichen
10, Schmid, Peter, 1234
30, Meier, Hans, 0815
50, Meier, Franz, 4711

d.h. wenn 2 gleiche Einträge vorhanden sind, soll der jeweils aktuellere mit der höheren ID ausgegeben werden.


Gruss, Jörn
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 10. Mär 2010, 15:47
Müsste das nicht so gehen?
SQL-Code:
SELECT ID, Name, Vorname, Nummer
FROM Tabelle A
WHERE ID = (
  SELECT MAX(ID)
  FROM Tabelle B
  WHERE B.Name = A.Name
  AND B.Vorname = A.Vorname
  AND B.Nummer = A.Nummer)
[edit] Sry, hatte die Nummer vergessen [/edit]

[edit2] Wobei eine einfache Gruppierung doch auch funktionieren müsste
SQL-Code:
SELECT MAX(ID), Name, Vorname, Nummer
FROM Tabelle
GROUP BY Name, Vorname, Nummer
[/edit2]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bassman

Registriert seit: 8. Apr 2008
18 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 11. Mär 2010, 14:23
Leider nein

habe ja nur eine Tabelle. Auch mit Gruppierungen konnte ich keine Lösung finden.
Habe nun ein zusätzliches Feld in der Tabelle angelegt.

Trotzdem danke DeddyH

Gruss, Jörn
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 11. Mär 2010, 14:35
Das wundert mich aber schon ein wenig. Zumindest die umständliche 1. Variante sollte eigentlich funktionieren, wenn man beide Male den selben Tabellennamen einträgt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 11. Mär 2010, 14:41
SQL-Code:
select * from tabelle where id in
  (select max(id) from tabelle group by name, vorname, nummer)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 12. Mär 2010, 12:35
Zitat von DeddyH:
Wobei eine einfache Gruppierung doch auch funktionieren müsste :gruebel:
SQL-Code:
SELECT MAX(ID), Name, Vorname, Nummer
FROM Tabelle
GROUP BY Name, Vorname, Nummer
Das funktioniert auch!

Wenn nicht, dann wurden die Datenhosen nicht weit genug hinunter gelassen!

Gruß
K-H

edit:
Zitat:
habe ja nur eine Tabelle. Auch mit Gruppierungen konnte ich keine Lösung finden.
Habe nun ein zusätzliches Feld in der Tabelle angelegt.
in der ersten Lösung wurde auch nur eine Tabelle genutzt "Tabelle" aber mit zwei Aliassen "A" und "B"
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
bassman

Registriert seit: 8. Apr 2008
18 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Bei doppeltem Eintrag, Record mit der höheren ID wählen

  Alt 12. Mär 2010, 15:41
Danke euch,

jetz hab auch ichs mit den Aliases kapiert ...

Habe nun DeddyH's Lösung umgesetzt.

SQL-Code:
SELECT ID, Name, Vorname, Nummer
FROM Tabelle A
WHERE ID = (
  SELECT MAX(ID)
  FROM Tabelle B
  WHERE B.Name = A.Name
  AND B.Vorname = A.Vorname
  AND B.Nummer = A.Nummer)
Gruss, Jörn
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:54 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