unwissender2002 Geschrieben 8. Oktober 2003 Geschrieben 8. Oktober 2003 Hallo, also ich habe folgendes Problem : Ich habe eine Tabelle mit rund 2000 Datensätzen, die neben einer Namensspalte auch ein wenig Zahlenmaterial in 3 weitern Spalten enhält. Soweit so gut ... Ich möchte nun in weiteren 3 Spalten den Rang ermitteln und Speichern. Ok das war mehr als unverständlich also ein Beispiel : In Spalte 2 steht beispielsweise die Artikelanzahl. Und nun möchte ich den Anbietern eine eine Rangnummer geben, also er ist der mit den meisten Artikel, der ist der zweite usw. Wie gesagt es sind insgesamt drei Spalten die einen Rang erahlet sollen. Mein eigentliches Problem ist die Zeit, denn mein Lösung braucht knapp 60 Sekunden zu Berechnung, da die 2000 jeweils mit den restlichen 1999 vergleichen, da kann man sich den Aufwand ja in etwas ausmalen. Kennt jemand eine schnelle Lösung. Vielen Dank. Zitieren
Reinhold Geschrieben 9. Oktober 2003 Geschrieben 9. Oktober 2003 Lies dir die Tabelle am besten schon sortiert in ein Recordset ein ("Select * from bla order by artikelanzahl"), und gehe dann alle Sätze durch, wobei du mitzählst. Falls doppelte Werte vorkommen können, die den gleichen Rang bekommen müssen, wird es komplizierter. Wahrscheinlich hilft dir das Beispiel "frmHochsprung" in Klaus Oberdalhoffs knowhow.mdb, die du dir unter Freeaccess runterladen kannst. hth Reinhold Zitieren
nic_power Geschrieben 9. Oktober 2003 Geschrieben 9. Oktober 2003 Hallo, im Endeffekt laeuft das auf die Sortierung Deiner Tabelle nach einem bestimmten Feld hinaus. Der von Dir gewaehlte Ansatz ist mit Abstand der ineffizienteste. Warum nimmst nicht einen Quicksort, um die Tabelle zu sortieren. Das sollte sich auch Problemlos in Basic umsetzen lassen. Nic Zitieren
unwissender2002 Geschrieben 9. Oktober 2003 Autor Geschrieben 9. Oktober 2003 Hallo, und danke erstmal ... @ Rehinhold: Sowas hab ich mir heute auch zusammengebastelt, das Probelm ist nur, dass ich diese Rangnummern für 3 verschiedene Kriterien brauch, so dass ich das ganze 3 mal machen múss bzw. ich mach ne nette Verschachtelung. (was es wohl auch werden wird) @Nic_Power : Ineffizientm ... ja aber es funktioniert und Quicksort kann ich nicht nehmen, a ich erstens 3 verschiedene Rangnummern brauch und zweitens Quicksort mir zwar die Liste(Tabelle) sortiert aber mir weder wirkliche Rangnummern also Zahlen liefert und es doppelten oder gleichen Rängen auch nicht weiter hilft. Das heißt nach der Sortierung fang ich nochmal an und geh die Tabelle von oben bis unten durch und schreib ne Nummer rein ... wirklich schönist das auch nicht. ... trotzdem vielen Dank. Zitieren
maxim_42 Geschrieben 13. Oktober 2003 Geschrieben 13. Oktober 2003 Ich nehm mal an, du arbeitest mit Access. In dem Fall würde ich den Rang nicht in die Tabelle aufnehmen, da der Rang für alle Datensätze geändert werden muss, wenn ein Datensatz geändert wird. Statt dessen, für jeden Rang eine Abfrage erstellen. 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.