Hallo und Guten Morgen.
Ich bin zum erstenmal in diesem Forum, und was Access beztrifft noch Anfänger.Von einer Visual Basic Anwendung aus werden durch die Eingaben
in ein DataGridView die Daten in einer Access Datenbank und deren Tabelle gespeichert. Es handelt sich um eine Turniertabelle mit Ergebnissen.
Von dieser Tabelle gibt es eine Auswahlabfrage in der in der Spalte "Gesamt" die Ergebnisse addiert und Absteigend sortiert werden. Gib es hier
ein Ergebnisgleichstand zwischen 2 Sportlern, ist ein Stechergebnis erforderlich, welches in der darauffolgenden Spalte "Stechen" eingetragen wird.
Hier sollen jetzt nach Stechergebnis die beiden Sportler wenn nötig Absteigend sortiert werden.
Access 2010 - DB.accdb
Beispiel:
Name: Wert1 Wert2 Wert3 Gesamt: Stechen:
Udo 10 10 10 30
Heinz 10 10 9 29 9
Karl 10 10 9 29 10
Klaus 10 10 8 28
Heinz und Karl haben jetzt das gleiche Gesamtergebnis, im Stechen aber 9 zu 10. Hier müssten jetzt die Plätze getauscht werden. Ist das
machbar, wenn ja bitte wie??
Könnte man wenn nötig eine kleine Testdatenbank, vieleicht gezipt, posten?
Für jede Hilfe meinen Dank im Voraus.
Gruß Skaletti!
Multipliziere das Gesamtergebnis mit 1000 (oder einem anderen ausreichend großen Wert) und addiere dazu das Ergebnis aus dem Stechen. Die Summe sortierst Du absteigend.
Hallo
Warum muss in der Spalte ein Wert Vorgegeben werden und dann "Multipliziert" werden.
Wenn das ganze als Abfrage aufgebaut ist wie beschrieben, dann ist es auch Möglich beide Spalten in der Abfrage zu sortieren.
Spalte Gesamt: Aufsteigend
Spalte Stechen: Absteigend
Verstehe hier wirklich nicht wo das Problem liegt
Hallo Maxel, Stapi,
vielen Dank für eure schnellen Antworten.
Was Maxel vorschlägt kann ich leider so nicht gebrauchen.
Stapis Vorschlag würde funzen, aber ich muss beides Absteigend sortieren,dann funzt es nicht. Die beiden Ergebnisgleichen müssen lediglich
die Plätze tauschen. Habe mal eine Testdatei angefügt.
Gruß Skaletti
[Anhang gelöscht durch Administrator]
Hi,
Deinen Anhang kann ich nicht öffnen wegen .rar.
Vermutlich deshalb kann ich auch nicht nachvollziehen, warum der gute Vorschlag von Stapi nicht funktioniert.
Wenn Du beiden Spalten (Gesamt und Stechen) absteigend sortierst, ist doch Karl vor Heinz.
Harald
Das eigentlich ausreichende Sortieren funktioniert deswegen nicht, weil die Ringsummen von Josef und Daniela, obwohl beide mit 104,5 sichtbar, nicht gleich sind. Als Test: Die nachfolgende Abfrage zeigt eine leere Ergebnismenge, was bei einer Gleichheit nicht sein dürfte.
SELECT
F1.*
FROM
[Finale LG aufgelegt] AS F1
INNER JOIN [Finale LG aufgelegt] AS F2
ON F1.Gesamt = F2.Gesamt
WHERE
F1.ID < F2.ID
Der Grund hierfür ist nicht offensichtlich, vermutlich wirkt hier die Fließzahlenproblematik (bei einer einfachen Addition sehr ungewöhnlich). Statt Double solltest Du es mit den Datentypen Dezimal oder Currency versuchen.
Alternative: Ergebnis einfach noch einmal auf die sichtbaren Dezimalstellen runden.
ORDER BY
Round([S1]+[S2]+[S3]+[S4]+[S5]+[S6]+[S7]+[S8]+[S9]+[S10], 1) DESC ,
[Finaleingabe LG aufg].Stechschuß DESC
MfGA
ebs
Hallo Harald, Hallo ebs,
es tut mir leid das ich mich erst jetzt melde, war unterwegs.
Vielen Dank für eure Antworten.
Auch wenn ich es noch nicht richtig verstanden habe, es funzt mit dem Code
ORDER BY Round([S1]+[S2]+[S3]+[S4]+[S5]+[S6]+[S7]+[S8]+[S9]+[S10], 1) DESC , [Finaleingabe LG aufg].Stechschuß DESC
Mit Dezimal und Currency hats nicht geklappt.
Sortiert wird jetzt richtig. :D
Gruß Skaletti.