Problem bei einer Abfrage
-
Hi, ich hab da mal ein Problem:
Die Tabelle schaut so aus:
Angestellte(Name, Rang, Gehalt, Abteilungsnummer)
und jetzt soll ich folgendes liefern:
"Ermittle die Top(10) der Angestellten für jede Abteilung und gib den Rang und den Namen aus."
Wie kriege ich das hin, dass ich die 10 pro Abteilung kriege, die am meisten verdienen?!
Grüße,
Jojo
-
Mit 'ORDER BY Feldname DESC' (DESC = absteigend, ASC = aufsteigend) kannst Du die Sortierreihenfolge festlegen.
Ob und mit welcher Syntax die Anzahl der zurückgebenen Datensätze beeinflußt werden kann, ist von der Datenbank abhängig. Bei mySQL war es (glaube ich) 'LIMIT', bei MS-SQL 'TOP'.
-
Danke.
Aber irgendwie steh ich aufm Schlauch.
Die Top10 einer Abteilung krieg ich so locker hin. Aber wie mach ich das für alle abteilungen? ich kann ja keine foreach schleife oder so bauen...
-
StudentJojo schrieb:
Danke.
Aber irgendwie steh ich aufm Schlauch.
Die Top10 einer Abteilung krieg ich so locker hin. Aber wie mach ich das für alle abteilungen? ich kann ja keine foreach schleife oder so bauen...
Indem du nicht nach der Abteilung(snummer) filterst.
-
SELECT Rang, Name
FROM Angestellte
ORDER BY Gehalt
HAVING Gehalt in (SELECT TOP(10) Gehalt FROM Angestellte)????
das liefert mir aber nich das richtige (wenns überhaupt was liefert).irgendwie check ichs echt ned.
-
Du willst das tatsächlich in einer einzigen Abfrage haben? Das ist m.E. unsinnig?!?
Versuch es mal in diese Richtung:
SELECT a1.Abteilungsnummer, a1.Name, a1.Gehalt
FROM Angestellte a1
WHERE (a1.Name IN (SELECT TOP (10) a2.Name FROM angestellte a2 WHERE a2.Abteilungsnummer = a1.Abteilungsnummer ORDER BY Gehalt DESC)
ORDER BY a1.Abteilungsnummer ASC, a1.Gehalt DESC
-
vom ausschaun her könnst so hinhaun. blos testen kann ich ned, weil ich in access ned rauskrieg wie ich das TOP machen soll.
jedenfalls ma danke.
-
StudentJojo schrieb:
vom ausschaun her könnst so hinhaun. blos testen kann ich ned, weil ich in access ned rauskrieg wie ich das TOP machen soll.
Das hatte ich so von Deinem Beispiel abgetippt. Ein Blick in die Hilfe von Access zeigt, dass die Syntax SELECT TOP 10 ist. Also einfach nur ohne Klammern.
-
blick in die Hilfe tat ich schon. jedoch had dieser doofe animationsheini mir nix auf das schlüsselwort TOP gelierert.
Ok, es geht! Dange dir!