wolpi25
Goto Top

doppelten datensatzlöschen

Hallo Community,

habe ein kleines Problem.
Und zwar hab ich eine Datenbank mit ca. 20000 Datensätzen. Jetzt habe ich über eine Abfrage mir alle doppelten Datensätze rausgefiltert.
Soweit so gut.
Für das bessere Verständnis kurz ein Auszug aus der Datenbank:

Artikelnummer Artikelbeschreibung EK Gültigkeit
11111 Epson Drucker 50 20080501
11111 Epson Drucker 50 20080507

Ich muß nun den Datensatz rauslöschen dessen Gültikgeitswert älter ist als wie bei dem 2ten Eintrag.
In diesem Fall wäre es der erste Eintrag.

Wie muß ich vorgehen?

Gruß Wolpi25

Content-ID: 87112

Url: https://administrator.de/contentid/87112

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

Biber
Biber 07.05.2008 um 13:25:41 Uhr
Goto Top
Moin Wolpi25,

Ich muß nun den Datensatz rauslöschen dessen Gültikgeitswert älter ist als wie bei dem 2ten Eintrag.
Dazu 3 Nachfrage:
a) WTF ist ein Gültikgeitswert? [Eyy Alter, hasstu Gültikgeit, voll krass, boah...]
b) in welche Gegend Mitteleuropas sagt man/frau denn heutzutage noch "als wie"?
c) Welches Datenformat hat denn Dein Gültigkeitsdatum (20080104)?

Frage a) und b) sind jezz' nich' so dringend, aber c) wäre nützlich.

Und eigentlich auch die Frage d)
d) Warum willst Du die ehemals gültigen Artikel-Sätze denn überhaupt löschen?
Brauchst Du die nicht für die Auftragsnachverfolgung/Abrechnung?
Reicht nicht eine "logische Löschung" bzw. eine Kennzeichnung der aktuell gültigen Artikel.

Grüße
Biber
Wolpi25
Wolpi25 07.05.2008 um 15:53:03 Uhr
Goto Top
Hallo Biber,

erstmal danke für eine Antwort.
zu a) was ist wtf?
zu b) in der tiefsten provinz der wetterau face-smile
zu c) der Felddatentyp ist Zahl

zu d) ich bekomme tägliche Updates zugeschickt. Es kann passieren das in der Updatedatei die Atikelnummer mit einer neuen Gültigkeit übertragen wird.

Artikelnummer Artikelbeschreibung EK Gültigkeit
11111 Epson Drucker 50 20080501
11111 Epson Drucker 50 20080507
11111 Epson Drucker 50 20081025

Damit nun die Datenbank nicht immer grüßer wird, möchte ich die Artikelnummer mit dem nicht mehr gültigen Datum rauslöschen. In diesem Fall die oberste.
Biber
Biber 07.05.2008 um 17:13:29 Uhr
Goto Top
Moin Wolpi25,

zu zu a) WTF ist eine beliebte neudeutsche Redewendung, überszt in etwa "was zum Kuckuck...". Im Original "What the fogel" oder so ähnlich
zu zu b) ach so... Wetterau...da gibts schon Internet? Oder bist Du grad zu Besuch bei Verwandten in der Stadt? face-wink

zu dem Rest:
Ich würde die "aktuellen", also die Datensätze mit dem "größten" Gültigkeitswert so abgreifen.
SELECT a.Artikelnummer, a.Artikelbeschreibung, a.EK, a.Gültigkeit From Artikel a,
(Select c.Artikelnummer , max(c.Gültigkeit) as Gültigkeit From Artikel c group by c.Artikelnummer) b
WHERE a.Artikelnummer = b.Artikelnummer and a.gültigkeit=b.gültigkeit
[ungetestete Skizze]

So solltest Du alle Sätze mit dem "höchsten" Gültigkeitsdatum bekommen.

Grüße
Biber