Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Martin_82 am April 09, 2023, 14:45:04

Titel: Zweithöchsten Wert ermitteln
Beitrag von: Martin_82 am April 09, 2023, 14:45:04
Hallo,

ich bin noch Access Neuling und suche eine möglichst einfache Lösung für diese Aufgabe:

Aus einer Liste mit zwei Werten je TEAM möchte ich die zweit höchste Summe je Region anzeigen lassen:


Team   Region   Wert1   Wert2   Summe
Team A   Nord   100   10   110
Team B   Nord   150   50   200
Team C   Nord   90   10   100
Team A   West   160   20   180
Team B   West   100   50   150
Team C   West   140   20   160


Das Ergebniss sollte dann so aussehen:

TEAM A   Nord   110
TEAM C   West   160


Wie lässt sich das einfach lösen?

Danke für die Hilfe.

Viele Grüße
Martin
Titel: Re: Zweitbesten Wert ermitteln
Beitrag von: MzKlMu am April 09, 2023, 18:48:28
Hallo,
der Tabellenaufbau ist für Dein Vorhaben ungeeignet.
Die Werte müssen in eine Spalte (bzw, Feld) mit einem Feld für die Wertnr.
Team   Region   Wert1   WertNr  
Team A   Nord   100       1
Team A   Nord    10       2
Team B   Nord   150       1 
Team B   Nord    50       2
Team C   Nord    90       1
Team C   Nord    10       2
usw.

Summiert wird mit einer gruppierten Abfrage.

Was ist denn die Aufgabe der Datenbank?


Titel: Re: Zweitbesten Wert ermitteln
Beitrag von: Martin_82 am April 09, 2023, 21:18:29
Hallo Klaus,

danke für die Antwort. Ist dann leider doch nicht so einfach wie ich gedacht habe. Die Aufgabe der Datenbank ist das Team mit dem zweit (und dritt) höchsten Wert aus der Summe von Wert 1 und Wert2 je Region zu ermitteln (Es gibt noch mehr TEAMS und Regionen) Die Daten kommen so wie in der Tabelle zu sehen ist. In Excel habe ich das über KKLEINSTE in jeder Zeile gelöst.

Wie komme ich den an den zweit höchsten Wert wenn ich über die gruppierte Abfrage summieren?

Danke
Martin
Titel: Re: Zweithöchsten Wert ermitteln
Beitrag von: ebs17 am April 10, 2023, 10:35:01
Der Hinweis auf Normalisierung hat mit dem Umgang von Wert1, Wert2, ... WertX zu tun. Bei der Wahl der Summe spielt er keine Rolle mehr.
ZitatWie lässt sich das einfach lösen?
Der Zweitgrößte ist der Größte, wenn man zuvor den Größten ausschließt. Das kann man erreichen über entsprechende Gestaltungen per MAX oder TOP-X.

Der andere Weg ist die Einführung einer laufenden Nummerierung. An Hand der Nummer kann man dann auswählen.
SELECT
   Team,
   Region,
   Summe
FROM
   TableX AS T
WHERE
   DCOUNT("*", "TableX", "Region = '" & T.Region & "' AND Summe > " & T.Summe) = 1

Darüber hinausgehend müsste man sich definieren, wie man damit umgeht, wenn Summen gleich sind
Titel: Re: Zweithöchsten Wert ermitteln
Beitrag von: markusxy am April 10, 2023, 13:42:43
Zitat von: Martin_82 am April 09, 2023, 21:18:29... dem zweit (und dritt) höchsten Wert ... zu ermitteln

Es geht also nicht nur um den zweithöchsten Wert?

Titel: Re: Zweithöchsten Wert ermitteln
Beitrag von: Martin_82 am April 10, 2023, 19:33:08
Hallo schon mal danke für die Info´s. Ich werde mir das mit TOP-X mal ansehen.

@markusxy: Für´s erste geht es um den zweit höchsten. Ggf. auch um den dritten.

Noch mal Danke an euch.

Viele Grüße
Martin