Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Statement - Select TOP x - Variables Filterkriterium

Mitglied: Blu3Scr33n

Blu3Scr33n (Level 1) - Jetzt verbinden

21.10.2015 um 17:24 Uhr, 768 Aufrufe, 4 Kommentare

Hallo liebe Administratoren,

ich baue mir grade eine kleine Access-DB zusammen und bin dabei auf ein Problem gestoßen:

Ich möchte aus einer Tabelle die TOP 20 Einträge mehrerer Kategorien selektieren.
Ich habe einen Parameter, nachdem ich groupen kann, um die Top 20 Einträge herauszufinden. Dieser nennt sich "RPT_im_GJ".
Die Liste enthält zusätzlich eine Spalte mit der Informationen über Kategorie. Diese nennt sich "Sparte".
Den Sparteneintrag ziehe ich mir über einen Join-Befehl aus einer separaten Liste.

Meine Abfrage soll mir jetzt für jeden Eintrag "Sparte" jeweils die Top 20 Einträge von "RPT_im_GJ" ausgeben, sodass ich nach den Sparten filtern kann und mir nur noch die Top 20 Einträge der jeweiligen Sparte angezeigt werden.

Als Beispiel:
Meine Originalliste sieht so aus:
ID RPT_im_GJ Sparte
1 20.000 A
2 25.000 B
3 10.000 A
4 15.000 A
5 30.000 B
6 5.000 B

Meine Abfrage würde folgendes Ergebnis erzeugen (Wen ich nach den Top 2 selektieren würde):

ID RPT_im_GJ Sparte
5 30.000 B
2 25.000 B
1 20.000 A
4 15.000 A

Bisher habe ich das noch nicht geschafft und ich behelfe mir mit einem Workaround, in dem ich per Where-Clause die Sparte auswähle. Das ist allerdings mühsam, da ich ca. 50 Sparten habe und diese Query noch für mehrere Kriterien durchexerzieren müsste.

Ich würde das Problem gerne per SQL und nicht mit VBA lösen.
Gegoogelt habe ich auch schon, bin allerdings nicht zu einem passenden Ergebnis gekommen. Vielleicht liegt es aber auch nur daran, dass ich nach den falschen Schlagworten google.
Ich bitte um eure Hilfe und bin für Tipps und Ratschläge dankbar.

Beste Grüße

Blu3Scr33n
Mitglied: Safe-Virus
21.10.2015 um 21:21 Uhr
Guten Abend,

ich weiss es nicht genau wonach Sie gegoogelt haben, doch versuchen Sie nach
"select top records for each group"
zu googeln.

Hier eine interessante Lösung für das Problem:
http://code.openark.org/blog/mysql/sql-selecting-top-n-records-per-grou ...

es sind unterschiedliche Lösungen vorgeschlagen - man muss sich aber entscheiden, welche Lösung man nimmt. So richtig trivial sind sie nicht, jedoch auch keine Wissenschaft.

Ich würde es so lösen wie es hier beschireben ist:
http://stackoverflow.com/questions/16720525/how-to-select-top-3-values- ...

und zwar indem ich die Daten hier anpasse:

SELECT name, value, rn
FROM
( SELECT name, value,
ROW_NUMBER() OVER (PARTITION BY name
ORDER BY value DESC
)
AS rn
FROM t
) tmp
WHERE rn <= 3
ORDER BY name, rn ;

Viel Erfolg!
Bitte warten ..
Mitglied: Blu3Scr33n
22.10.2015 um 15:56 Uhr
Scheinbar existiert die Funktion Row_Number in Access nicht. Ich kriege nämlich ständig die Fehlermeldung: Syntax error (missing operator) in query expression 'xxx'.

Ich habe schon nach einer Lösung gegoogelt und bin fündig geworden. Row_Number Funktion in Access
Allerdings bin ich zu unfähig das Statement in die Abfrage oben reinzubasteln. Kann mir da jemand helfen?
Bitte warten ..
Mitglied: Safe-Virus
22.10.2015 um 16:19 Uhr
Es wäre echt schön, wenn Sie Ihr SQL Statement hier mitposten würden...
Bitte warten ..
Mitglied: TheJoker2305
01.07.2019 um 14:44 Uhr
Hallo,

Access kann kein "Row_Number"

BTW das aktuelle SQL wäre wirklich hilfreich.

Greetz
thejoker2305
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell + SQL Statement
gelöst Frage von mschaedler1982Batch & Shell5 Kommentare

Hallo zusammen, Ich sitze hier gerade vor einem Problem, wo ich nicht so recht weiterkomme und im Internet habe ...

Entwicklung
SQL-SELECT-Frage
gelöst Frage von MiStEntwicklung7 Kommentare

Hallo, ich versuche mich ab und an mit SQL. Und nun stehe ich vor einem kl. Problem, welches ich ...

Datenbanken
SQL Statement auseinandernehmen Like
gelöst Frage von H41mSh1C0RDatenbanken20 Kommentare

Hi@All, Ziel: Beim erstellen eines Reports existiert ein Feld in der eine bestimmte OU ausgewählt werden kann. Wird keine ...

Datenbanken
Select column by id ORALCE SQL
gelöst Frage von 94451Datenbanken2 Kommentare

Hallo Liebe Leut, gibt es die Möglichkeit eine Column anhand einer ID zu selekiteren? wenn ich einen Abruf mache ...

Neue Wissensbeiträge
Erkennung und -Abwehr
Emotet mit Rspamd und Oletools bekämpfen
Tipp von Dani vor 12 StundenErkennung und -Abwehr1 Kommentar

Moin, Um oletools während der Annahme einer E-Mail die bereits angehängten Office-Dateien analysieren lassen zu können, haben wir für ...

Viren und Trojaner

Gratis-Entschlüsselungstool für STOP-Ransomware verfügbar

Information von AnkhMorpork vor 18 StundenViren und Trojaner

Der Sicherheitsanbieter Emisoft hat ein kostenloses Tool veröffentlicht, mit dem sich Dateien entschlüsseln lassen, die die Ransomware STOP unbrauchbar ...

Off Topic
8 zoll disketten
Information von brammer vor 1 TagOff Topic5 Kommentare

Hallo, ob das so gut ist brammer

Off Topic
Noch mehr was ich nicht brauche
Information von brammer vor 4 TagenOff Topic6 Kommentare

Hallo, WOFÜR? WARUM? brammer

Heiß diskutierte Inhalte
Windows 7
Alter PC abgebrannt - Festplatte im neuen PC führt zum Bluescreen
gelöst Frage von CAT404Windows 725 Kommentare

Moin ich habe seit heute mittag einen PC aufm Tisch stehen, total verzweifelter Eigentümer. Der Rechner ist so ein ...

Server-Hardware
Welches Betriebssystem für DL380p Gen8 für den Heimgebrauch
Frage von peter91gServer-Hardware17 Kommentare

Hallo zusammen, betreibe Zuhause einen Dl380p G8 derzeit mit ESXI in der Testversion. Es läuft je nach Bedarf Ubuntu ...

Windows Server
Powershell Skript kann nicht geladen werden
Frage von renatus85Windows Server14 Kommentare

Hallo, ich habe folgendes Anliegen: In unserer Organisation setzen wir AlwaysOn VPN ein. Das funktioniert soweit auch ohne Probleme. ...

Router & Routing
ARCHER C7 als Open VPN-Server im Netwerk einer Fritzbox 6490
Frage von thburkhartRouter & Routing14 Kommentare

Guten Tag, ich habe bei UnityMedia eine Fritzbox 6490, die die Verbindung zur WAN-Seite herstellt. Einen VPN-Zugriff realisiere über ...