PDA

Vollständige Version anzeigen : Distinct mit Bedingung


Zise
06.07.2006, 10:52
Hi Leute,

ich hab ne Liste mit Materialnummern und Ausgabeständen (Versionen). Jetzt will ich, dass Access mir alle Materialnummern mit den alten Versionen rauslöscht und nur die letzten, aktuellen drin bleiben.

Bsp.:

Materialnr.__Version
A123_______01
A123_______02
A123______03
B234_______01
B234______02
C345______01
D456_______01
D456______02

Sogesehen, also nur die fett geschriebenen Materialnummern mit Versionen stehen bleiben.

Müsste irgendwie in die Richtung: Distinct Materialnr. where Version=min gehen.
Vielleicht kann mir ja jemand weiterhelfen.

Vielen Dank im voraus.


Sebastian

J_Eilers
06.07.2006, 11:00
Hi,

versuchs mal so:

SELECT
Materialnr,
(SELECT Max(Version) FROM Tabelle As Q WHERE Q.Materialnr = Tabelle.Materialnr) As V
FROM
Tabelle
GROUP BY
Materialnr

Zise
06.07.2006, 11:25
Funktioniert leider nicht.

Zudem hast du auch gar keinen "Distinct" eingebaut. Ich will ja, dass Access alle anderen Datensätze rauslöscht und nur die Materialnummern mit der höchsten Version drin lässt.

Anne Berg
06.07.2006, 11:33
Mit Distinct kannst du da auch nichts ausrichten. ;)

Du willst doch die alten löschen, nicht die neuen auslesen, oder?


Hiermit bekommst du die "alten" Versionen:SELECT v.ID, v.Materialnr,v.version
FROM tab_versionen as V
WHERE (((v.Version)<(select max(version) from tab_versionen as t where t.materialnr=v.materialnr)));
und so kannst du sie löschen:Delete * From tab_versionen Where tab_versionen.id In (Select v.ID
FROM tab_versionen as V
WHERE (((v.Version)<(select max(version) from tab_versionen as t where t.materialnr=v.materialnr))))

J_Eilers
06.07.2006, 11:44
Welch aussagekräftige Antwort...Ich brauch da gar kein Distinct, weil ich über die Artikelnummer gruppiere und damit taucht die nur einmal auf.

Zise
06.07.2006, 12:09
Sorry J_Eilers! Ich hab es ausprobiert und es hat nicht funktioniert. Ich bin ja aber auch kein Crack sondern eher ein Newbe. Vielleicht ha ich auch was falsch gemacht.

@Anne: Ich werds ausprobieren. Merci!

Zise
06.07.2006, 12:50
Danke Anne! Hat super funktioniert!