Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ORDER BY auf ein durch count() erstelltes Attribut

Empfohlene Antworten

Veröffentlicht

Hallo, ich habe folgende Abfrage:

Ich habe in Access (Version 2003) eine DB angelegt und möchte nun folgende Query machen:


SELECT tbl_Spielerkader.name, tbl_Spielerkader.vorname, COUNT(tbl_BegegnungTore.schuetze) AS tore

FROM tbl_Saison INNER JOIN (tbl_Begegnungen INNER JOIN (tbl_BegegnungTore INNER JOIN tbl_Spielerkader ON tbl_BegegnungTore.schuetze=tbl_Spielerkader.spielerId) ON tbl_BegegnungTore.begegnungId=tbl_Begegnungen.begegnungId) ON tbl_Saison.saisonId=tbl_Begegnungen.saison

WHERE tbl_Saison.default=True

GROUP BY tbl_BegegnungTore.schuetze, tbl_Spielerkader.name, tbl_Spielerkader.vorname

ORDER BY tore, tbl_Spielerkader.name, tbl_Spielerkader.vorname;

Wirklich wichtig ist nur der count in der Select Anweisung und das Order By ganz am Schluss.

Es geht darum die erzielten Tore eines Spielers anzuzeigen (summiert durch den count) und der Spieler mit den meisten Treffern soll natürlich oben auf der Liste stehen. Also möchte ich das Ganze Absteigend nach dem Feld "tore" das durch den count erstellt wurde sortieren.

Wenn ich es so schreibe wie oben, dann bekomme ich in Access im die Aufforderung einen Parameter einzugeben. Ich weiß aber nicht warum! Kann ich das Attribut "tore" so nicht ansprechen kann?

Moin,


SELECT tbl_Spielerkader.name, tbl_Spielerkader.vorname, COUNT(tbl_BegegnungTore.schuetze) AS tore

...

ORDER BY tore, tbl_Spielerkader.name, tbl_Spielerkader.vorname;

Wirklich wichtig ist nur der count in der Select Anweisung und das Order By ganz am Schluss.

Probier mal:

ORDER BY COUNT(tbl_BegegnungTore.schuetze) desc;

Reinhold

  • Autor

Nein funktioniert leider nicht. Bekomme eine Syntaxfehler bzw. eine Fehlermeldung die in etwas so lautet: "Die SELECT-Anweisung schließt ein reserviertes Wort oder einen Argumentnamen ein, das/der falsch, mit falscher Zeichensetzung oder überhaupt nicht eingegeben wurde. (Fehler 3141)"

Meist kann eine Datenbank nicht auf Alias-Namen Gruppieren oder Sortieren. In dem Fall muss man den kompletten Ausdruck/Feldnamen nochmal im Group by / Order angeben

Kurzfristig geht auch so was wie "... order by 3, 1, 2"

  • Autor
In dem Fall muss man den kompletten Ausdruck/Feldnamen nochmal im Group by / Order angeben

Was meinst du den kompletten Ausdruck/Feldnamen angeben?

Muss ich in den Order By Ausdruck noch mal den count() schreiben?

@allesweg

Geht nicht. Wie gesagt, sobald ich den namen des neuen Attributs schreibe möchte er Übergabeparameter

ja, aber eigentlich müsste die Lösung von Reinhold funktionieren, er hat das ja vorgeschlagen

ja, aber eigentlich müsste die Lösung von Reinhold funktionieren, er hat das ja vorgeschlagen

Ich warte auch schon gespannt, warum das bei ihm nicht geht. Evtl. ist das ja in A03 geändert worden.

Reinhold

  • Autor

Ok, danke! Funktioniert doch! Ich habe da wohl was falsch verstanden...

In meiner ORDER BY Clausel steht nun folgendes:

ORDER BY COUNT(tbl_BegegnungTore.schuetze) desc, tbl_Spielerkader.name, tbl_Spielerkader.vorname;

So gehts! Danke!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.