U-- °LoneWolf° Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 Hi zusammen, ich bin auf der suche nach einer lösung für folgendes Problem Spalten der Tabelle ID vernr Wert Die Daten sehen z.B. so aus 1,1,1 1,2,2 1,3,1 2,1,10 ... 100,1,2007 usw. Der Primärschlüßel setzt sich also aus der ID und der Vernr zusammen. Ich möchte nun ein select bauen das mir folgendes ergebniss ausspuckt 1,3,1 2,1,10 100,1,2007 also Pro ID nur einen datensatz und zwar den mit der größten vernr geht das? Ich habe es schon mit Max in der where bedingung versucht aber das funktioniert wohl nicht achja ist eine MSSQL DB schon mal thx Grüße Wolf Zitieren
flashpixx Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 Hallo, ich hoffe ich hab Dein Problem richtig verstanden, d.h. Du willst den Datensatz, der innerhalb der Gruppe (1. Feld) den größten Wert im 3. Feld hat ? Primärkey ist Feld 1 + Feld 2. Gruß Phil Zitieren
Byteloser Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 Da kommst Du um eine Unterabfrage nicht drum rum. Versuch mal folgendes: Select * From TabelleA ta Inner Join (Select ID, max(vernr) as max_vernr From TabelleA Group By ID) as ta_max On ta.ID = ta_max.ID And ta.vernr = ta_max.max_vernr Zitieren
Jan Jansen Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 Bilde zuerst eine Unterabfrage mit id, max(versionsnummer) über alle Datensätze und Joine diese Abfrage mit der Ursprungstabelle oder SELECT ... FROM ... WHERE (id, vernummer) IN (SELECT id, max(versionsnummer) FROM ...) vom Gefühl her dürfte das erste schneller sein Zitieren
U-- °LoneWolf° Geschrieben 25. Oktober 2007 Autor Geschrieben 25. Oktober 2007 alles klar thx leute ich hatte gehoft ich könnte um die unzterabfrage rum kommen da in der tb ca. 2 mio. datensätze sind Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.