Office: (Office 2016) Höchster Wert einer Gruppe mit allen Feldern

Helfe beim Thema Höchster Wert einer Gruppe mit allen Feldern in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe eine Tabelle (gekürztes Beispiel) mit folgendem Aufbau in Access importiert: Tabelle A:... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von lenaila, 9. November 2020.

  1. Höchster Wert einer Gruppe mit allen Feldern


    Hallo,

    ich habe eine Tabelle (gekürztes Beispiel) mit folgendem Aufbau in Access importiert:

    Tabelle A:
    ObjectID....GRID_ID.....Text.........INHALT......Shape_Area
    1................A-1..............gut..............1.............250000
    2................A-1..............mittel..........2.............100000
    3................A-1..............schlecht......3.............5000
    4................A-2..............gut..............1.............200000
    5................A-2..............mittel..........2.............3000
    6................A-2..............schlecht......3.............1000
    7................A-3..............gut..............1.............100
    8................A-3..............mittel..........2.............50
    9................A-4..............mittel..........2.............1000
    10..............A-4..............schlecht......3.............300000

    Das Ergebnis sollte wie folgt aussehen:

    ObjectID....GRID_ID.....Text.........INHALT......Shape_Area
    1................A-1..............gut..............1.............250000
    4................A-2..............gut..............1.............200000
    7................A-3..............gut..............1.............100
    10..............A-4..............schlecht......3.............300000

    Ich möchte immer nur die Zeilen zurückbehalten, die gruppiert nach GRID_ID den höchsten Wert bei Shape_Area haben. Wichtig ist aber, dass die Felder Text und Inhalt mit ausgegeben werden. Und genau an dem Punkt komme ich nicht weiter.

    Ich würde mich noch als Access-Anfänger bezeichnen. Vor allem mein SQL-Wissen ist leider noch ziemlich beschränkt, aber ich habe so das Gefühl, dass ich hier ohne nicht weiter komme...

    Es wäre wirklich toll, wenn mir hier weitergeholfen werden könnte. *Smilie

    :)
     
    lenaila, 9. November 2020
    #1
  2. Hallo lenaila,

    es wäre viel einfacher, wenn du die DB mit der Beispieltabelle hier hochlädst, dann brauchen die Helfer nicht alles nochmal eintippen.

    Gruß Ulrich
     
    knobbi38, 11. November 2020
    #2
  3. Code:
    Das wäre eine Möglichkeit, die allerdings davon ausgeht, dass es keine
    doppelten Werte in Shape_Area pro Gruppe gibt.
     
    CatboyJones, 11. November 2020
    #3
  4. Höchster Wert einer Gruppe mit allen Feldern

    Hallo,

    erstmal vielen Dank!!!*Smilie
    Der Code von CatboyJones funktioniert schon mal und ich glaube ich verstehe ihn auch soweit.

    Ich habe euch das Ganze dann auch nochmal als Tabelle hochgeladen. (Danke Urlich für diesen Hinweis)

    Ich habe mich nämlich gefragt, ob man das auch als Löschabfrage aufbauen könnte? Also genau umgekehrt. Immer die niedrigsten Einträge löschen und nur den höchsten von jeder GRID_ID behalten. Würde das gehen .. und wenn ja wie?*confused.gif*

    LG
     
  5. Die sieben zwischen höchst und niedrig schweben dann in der Luft?
     
  6. Das Löschen des DS mit dem kleinsten Wert könnte etwa so aussehen:

    Code:
    Nur eben mit Delete statt Select.
     
    CatboyJones, 11. November 2020
    #6
  7. Die Einträge zwischen höchst und niedrig sollen ebenfalls entfernt werden, so dass nur der höchste Wert jeder GRID_ID übrig bleibt.

    Wenn ich den Code unten anwende, wird schonmal immer der niedrigste Wert gelöscht. Das Ergebnis enthält die höchsten und die "mittleren". Letztere müssten quasi auch noch entfernt werden, damit wirklich nur die höchsten zurückbleiben.

    Wenn das aber nicht geht, bin ich mit dem ersten Auswahl-Code auch schon super glücklich! *biggrin.gif* Hat mir schon den Tag gerettet!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  8. Höchster Wert einer Gruppe mit allen Feldern

    Vorab: Beim Löschen benötigt man nicht alle Felder des Datensatzes, sondern nur jene, die ihn eindeutig identifizieren. Gelöscht wird dann eh nur datensatzweise.
    Code:
     
  9. Hallo Eberhard,

    Schönes SQL. Auf die Idee mit SELECT NULL FROM bin ich noch nicht gekommen.
    Ich versuche, mir vorzustellen, wie das abgearbeitet wird, da Du das geklammerte SELECT nicht auf den jeweiligen Max-Wert von Shape_Area hin gruppiert hast. Läuft da nicht eine unnötige Kaskade ab?
     
    Frank200, 11. November 2020
    #9
  10. Ich bin ziemlich vom Gegenteiligen überzeugt: Es wird unmittelbar gelöscht, wenn es noch einen größeren Wert gibt.
    Gruppieren + Aggregieren ist auch Arbeit, die erst einmal gemacht werden muss.


    Aber auch folgende kleine Überlegung darf man anstellen: Löschen ist ein eher einmaliger und in einer Datenbank weniger gebräuchlicher Vorgang (Wiederholung, Datenmasse) und bedarf daher weniger einer Hochoptimierung. Wer das anders sieht, sollte erst einmal seine Abläufe und Strukturen überdenken. Ehe man Unnötiges löschen muss, würde man doch dafür sorgen, dass solches gar nicht erst in seinen Tabellen auftreten kann.

    Verwendung von NULL: Bei einer EXISTS-Prüfung erfolgt der Test nur auf Datensätze, die die formulierten Kriterien erfüllen. Was da im SELECT-Teil steht, ist egal. Das kann man über eine beliebige Konstante ausdrücken wie 1, Y oder eben NULL. NULL ist für mich halt der beste Ausdruck für unwichtig. Würde man Feldnamen verwenden, könnte da mancher eine Bedeutung dessen hineinlegen.
     
  11. \@ebs17
    Immer wieder faszinierend. *Smilie

    Wobei das über einen JOIN auch funktioniert:

    Code:
    Deine Lösung ist pfiffiger, vmtl. performanter, aber irgendwie undenkbar.
     
    CatboyJones, 11. November 2020
    #11
  12. Ja, man kann sehr unterschiedlich formulieren.
    An Deiner Variante irritiert mich die Verwendung von ObjektID. Diese wurde a) nicht explizit in der Aufgabenstellung als wichtig genannt und sollte b) in dieser Verwendung eine eindeutige ID des Datensatzes sein (was hier weniger oder mehr nur unterstellt wird).

    Überzeugend wäre sicherlich eine Unterabfrage auf das Maximum, die man per Inkonsistenzprüfung unmittelbar in der obersten Ebene mit der Tabelle verknüpft. Da treten aber schnell Bezugsprobleme auf, was denn nun gelöscht werden soll. Hier wäre dann eines der sehr wenigen Einsatzgebiete von DISTINCTROW (was ich aber wenig mag).
     
  13. Höchster Wert einer Gruppe mit allen Feldern

    Jepp, das wäre schon ein Gedanke, den ich in einem eigenen Anwendungsfall
    genauer geprüft hätte.
     
    CatboyJones, 11. November 2020
    #13
  14. OK, mit DISTINCTROW würde es funktionieren.
    Wusste ich zuvor auch noch nicht.


    Code:
     
    CatboyJones, 12. November 2020
    #14
  15. Sorry, verstehe nicht, welche Prüfung? Ob die Maxima einmalig (unique) sind?
     
Thema:

Höchster Wert einer Gruppe mit allen Feldern

Die Seite wird geladen...
  1. Höchster Wert einer Gruppe mit allen Feldern - Similar Threads - Höchster Wert Gruppe

  2. Excel bedingte Formatierung - höchster und zweithöchster Wert

    in Microsoft Excel Hilfe
    Excel bedingte Formatierung - höchster und zweithöchster Wert: Hallo zusammen, ich habe eine Tabelle, in der soll der Höchte Wert farbig markiert werden, das ist ja kein Problem. Nun versuche ich jedoch folgendes: Wenn ( höchster Wert > zweithöchter Wert +...
  3. Die 10 höchsten Werte in einer Abfrage ermitteln

    in Microsoft Access Hilfe
    Die 10 höchsten Werte in einer Abfrage ermitteln: Für eine Top 10 Liste sollte ich die 10 höchsten Werte in der Spalte SScore mit einer Abfrage ermitteln. Über die Sortieren erreiche ich, dass alle Werte Absteigend sortiert werden. Wie und wo...
  4. Abfrage Auswahl des höchsten Wertes

    in Microsoft Access Hilfe
    Abfrage Auswahl des höchsten Wertes: Hallo allerseits, ich möchte eine Abfrage generieren, die mir jeweils Werte des letzten Abschreibungsjahres liefert: [ATTACH] Es sollen in diesem Beispiel nur drei Zeilen geliefert werden:...
  5. Niedrigsten/höchsten Wert hervorheben nach Vergleich identischer kombinierter Spalteneinträge

    in Microsoft Excel Hilfe
    Niedrigsten/höchsten Wert hervorheben nach Vergleich identischer kombinierter Spalteneinträge: Hallo zusammen, ich habe mich für mein Problem extra hier im Forum angemeldet, da ich bisher nirgendwo eine Lösung gefunden habe. Ich hoffe, dass ich nicht gleich gegen die ersten Regeln verstoße...
  6. Subtraktion des niedrigsten Wertes vom höchsten Wert aus einem bestimmten Bereich

    in Microsoft Excel Hilfe
    Subtraktion des niedrigsten Wertes vom höchsten Wert aus einem bestimmten Bereich: Guten Tag  Ich komme leider bei meiner Auswertung nicht weiter. Dazu habe ich einen Anhang hochgeladen. Ich benötige eine Formel für folgenden Sachverhalt. Wenn in einem bestimmten Bereich der...
  7. Wie zeige ich den höchsten Wert aus den Zellen B2 - B 4 an

    in Microsoft Excel Hilfe
    Wie zeige ich den höchsten Wert aus den Zellen B2 - B 4 an: Hallo Zusammen, ich bräuchte mal bitte Eure Unterstützung. Ich möchte als Ergebnis in der Zelle B6 folgenden Wert aus den Zellen B2 - B4 Siehe Anhang [ATTACH] Mein Problem ist,...
  8. Nach Datum Zellen Zählen und höchsten Wert optisch hervorheben

    in Microsoft Excel Hilfe
    Nach Datum Zellen Zählen und höchsten Wert optisch hervorheben: Hallo, ich habe ein kleines Problem mit einer Datei. Es sollen in dieser Datei für jeden Tag die Verschiedenen Windrichtungen ausgezählt werden und die am meisetn vorkommende Windrichtung pro Tag...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden