SQL-Experten gesucht! Hilfe!
Tanja80
- datenbank
Hallo liebe Leute,
ich brauche Eure Hilfe!
Ich habe eine Tabelle Person mit 4 Attributen: Name, Vorname, Geburtsdatum und Geburtsort.
Ich brauche eine SQL-Abfrage, die aus Tabelle Datensätze mit Namensvetter ( Name + Vorname ) löscht, aber lässt nur den jüngsten bleiben z.B.
Schmidt | Markus | 1960 | Hamburg
Mustermann | Dieter | 1970 | Berlin
Mustermann | Dieter | 1980 | München
Ergebnis
Schmidt | Markus | 1960 | Hamburg
Mustermann | Dieter | 1980 | München
Ich bedanke mich im Voraus für Eure Muhe
Gruß
Tanja
Hi Tanja
Was für ein DBMS verwendest du? Was hast du bereits ersucht? Insbesondere ohne die erste Angabe, ist es nicht möglich, dir eine Antwort zu liefern, die nicht auf Annahmen basiert.
Gruss Daniela
Hallo Daniela!
Ich darf aus der Tabelle nichts löschen - nur abfragen mit SELECT ....
Diese Abfrage brauche ich für Oracle und Access...
Hallo Daniela!
Ich darf aus der Tabelle nichts löschen - nur abfragen mit SELECT ....
Deine Anfrage hies aber, lösche alles ausser...
wie soll das gehen?
Diese Abfrage brauche ich für Oracle und Access...
Für Oracle müsste es etwa so gehen (Achtung ungetestet):
delete
from blub e
where exists(select *
from blub b
where e.name = b.name
and e.vorname = b.vorname
and e.geburtsdatum < b.geburtsdatum)
Gruss Daniela
Hallo liebe Leute,
Hallo liebe Tanja80 ;-)
probiers doch bitte mal damit:
select nachname, vorname, gebdatum, gebort from tab where gebjahr < (select MAX(gebjahr) from tab) and 1 < (select distinct vorname from tab)
Ich habs jetzt nicht ausprobiert, aber vielleicht funktionierts. Kann deine Datenbank Subqueries? Ist mal ein Schuß aus dem hohlen Bauch, aber wer weiß...Wenns Schwachsinn ist korrigiert mich bitte!
Grüße aus dem Schwabenland
Noodles