Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Skaletti am April 11, 2013, 11:12:54

Titel: Sortieren über 2 Spalten in Abfrage
Beitrag von: Skaletti am April 11, 2013, 11:12:54
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!
Titel: Re: Sortieren über 2 Spalten in Abfrage
Beitrag von: Maxel am April 11, 2013, 12:46:25
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.
Titel: Re: Sortieren über 2 Spalten in Abfrage
Beitrag von: Stapi am April 11, 2013, 18:33:45
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
Titel: Re: Sortieren über 2 Spalten in Abfrage
Beitrag von: Skaletti am April 12, 2013, 07:14:57
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]
Titel: Re: Sortieren über 2 Spalten in Abfrage
Beitrag von: bahasu am April 12, 2013, 14:47:38
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
Titel: Re: Sortieren über 2 Spalten in Abfrage
Beitrag von: ebs17 am April 12, 2013, 17:03:24
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
Titel: Re: Sortieren über 2 Spalten in Abfrage
Beitrag von: Skaletti am April 13, 2013, 15:47:42
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.