Ergebnis 1 bis 5 von 5
  1. #1
    Office-Hilfe.com - Erfahrener
    Registriert seit
    28.07.2008
    Beiträge
    74

    Dommax richtig benutzen

    hallo,

    bei Access bin ich nen richtiger Newbe

    Ich versuche gerade bei einer Abfrage Dommax zu benutzen und scheitere klärglich.

    Ich habe eine Tabelle mit ca. 300 Namen und ca. 4000 Werten.
    Sprich jeder Name kommt ca. 12 mal mit verschiedenen Werten vor

    Sagen wir die Spalte mit den Namen heißt ("name") und die Spalte mit den Werten heißt "werte".

    Jetzt will ich über eine Abfrage zu jedem Namen den Maxwert raushaben

    Wie muß dann der Syntax in der Abfrage für Dommax lauten?


    ich hatte versucht, bei einer Abfrage unter "werte" als kriterium :
    Dommax ("werte";"Tabelle";"name") .

    Auch andere Versuche paßten einfach nicht.

    Habe ich einen Syntaxfehler?

    Und funktioniert das ganze auch mit einem Datum oder nur mit einem Zahlenwert?

    Thanxs!
    Grüße

  2. #2
    Office-Hilfe.com - Profi
    Registriert seit
    24.11.2008
    Beiträge
    1.633
    Hallo,

    die Syntax von Dommax lautet lt. Microsoft:
    DOMMAX(Ausdruck;Domäne;Kriterien)
    dabei bedeutet:
    Domäne: der in Anführungszeichen gesetzte Name der Tabelle, in der gesucht werden soll.
    Ausdruck: das Feld in der Tabelle, das nach dem größten Wert abgegrast werden soll.
    Kriterien: liefern die Filterbedingungen; es sollen nur diejenigen Sätze für die Suche herangezogen werden, die dem Kriterium (den Kriterien) entsprechen.

    Also:
    Wenn Du zB. eine Tabelle mit dem Namen "VerkaufteArtikel" hast, in der sich ein Feld (=Spalte) mit der Bezeichnung "VerkaufteStück" und weiters ein Feld mit der Bezeichnung "Artikelbezeichnung" befindet, so kannst Du mit DOMMAX folgenden Abfrageausdruck basteln, der zB. im Feld Artikelbezeichnung nach dem Artikel 'Hemd' sucht und denjenigen Satz (=Tabellenzeile) liefert, in dem im Feld VerkaufteStück der größte Wert enthalten ist.
    DOMMAX(VerkaufteStück;"VerkaufteArtikel";"Artikelb ezeichnung='Hemden'")
    Dabei beachte man, dass der Feldname VerkaufteStück ohne Anführungszeichen zu setzten ist, die Tabellenname VerkaufteArtikel aber sehr wohl in Anführungszeichen zu setzen ist; und der 3. Parameter für die Kriterien muss auch insgesamt in Anführungszeichen gesetzt werden, wobei sein Inhalt natürlich einen logischen Ausdruck ergeben muss, der entweder WAHR oder FALSCH sein kein. Da das Feld Artikelbezeichnung ein Textfeld sein muss, ist der Wert, der nach dem = abgefragt wird, zumindest in einfache Anführungszeichen zu setzen. Wäre das Feld Artikelbezeichnung ein numerisches Feld, ist nach dem = natürlich auf eine Zahl abzufragen; diese steht natürlich nicht in einfachen Anführungszeichen.

    In Deinem Fall:
    Wenn die Tabelle, in der Du suchst, zB. die 'Tabelle2' ist, dann würde Dein DOMMAX lauten:
    DOMMAX(Werte;"Tabelle2";"Name='Hugo'")
    wenn Du nach denjenigen Namen Hugo suchst, der im Feld Werte seinen größten Eintrag hat.
    Arbeitest Du aber nicht mit einer Kriteriumskonstante (zB. 'Hugo'), sondern mit einer Variablen (in der der Text 'Hugo' gespeichert ist) und heißt diese zB. 'AbfrName', dann muss die DOMMAX-Funktion lauten:
    DOMMAX(Werte;"Tabelle2";"Name='"& AbfrName & "'").
    Und funktioniert das ganze auch mit einem Datum oder nur mit einem Zahlenwert?
    Ein Datum ist nichts anderes als eine speziell formatierte Zahl (Typ Double) und zwar ist die verwendete Einheit 1 Tag. Von einem Nullpunkt ausgehend, werden alle Tage fortlaufend gezählt. Stunden/Minuten/Sekunden stellen somit nur Bruchteile der Einheit 1 Tag dar.
    Wie numerische Felder im Kriterium verwendet werden, habe ich vorhin schon erwähnt, zB:
    DOMMAX(Preis;"Schuhe";"Größe=45")
    in einer Tabelle 'Schuhe' soll der höchste Preis (Feld Preis) der Größe 45 (Feld Größe mit Wert 45) abgefragt werden.
    Arbeitest Du aber nicht mit einer Kriteriumskonstante (zB. 45), sondern mit einer Variablen (in der die Zahl 45 gespeichert ist) und heißt diese zB. 'AbfrZahl', dann muss die DOMMAX-Funktion lauten:
    DOMMAX(Preis;"Schuhe";"Größe="& AbfrZahl)
    Liebe Grüße
    Anton Exl

    Windows 8.1
    Office 2013 Professional

  3. #3
    Office-Hilfe.com - Erfahrener
    Registriert seit
    28.07.2008
    Beiträge
    74
    okay.. besten Dank dafür schon mal..

    aber ich möchte nicht nur einen Artikel mit dem höchsten Wert haben sondern von allen Artikeln den höchsten Wert.

    Z.B.

    Tabelle:

    name datum

    Hans 19.01.2009
    Peter 25.05.2009
    Otto 23.03.2008
    Peter 05.05.2007
    Hans 19.03.2009
    Otto 25.01.2009

    und daraus brauche ich eine Abfrage:

    Hans 19.03.2009
    Peter 25.05.2009
    Otto 25.01.2009


    Danke...

  4. #4
    Office-Hilfe.com - Profi
    Registriert seit
    24.11.2008
    Beiträge
    1.633
    Hallo,

    Meine Demo-Tabelle 'Tab_NameDatum' hat 2 Felder:
    das Feld 'Vorname' vom Typ Text
    das Feld 'Datum' vom Typ Datum/Uhrzeit
    <table border='1' cellspacing='0' cellpadding='2' valign='middle' colspan='3'><colgroup><col width='28pt'><col width='66pt'><col width='66pt'></colgroup><tr><td align='middle'>4</td><td align='middle'>Vorname</td><td align='middle'>Datum</td></tr><tr><td align='middle'>5</td><td align='left'>Hans</td><td align='right'>19.01.2009</td></tr><tr><td align='middle'>6</td><td align='left'>Peter</td><td align='right'>25.05.2009</td></tr><tr><td align='middle'>7</td><td align='left'>Otto</td><td align='right'>23.03.2009</td></tr><tr><td align='middle'>8</td><td align='left'>Peter</td><td align='right'>05.05.2009</td></tr><tr><td align='middle'>9</td><td align='left'>Hans</td><td align='right'>19.03.2009</td></tr><tr><td align='middle'>10</td><td align='left'>Otto</td><td align='right'>25.01.2009</td></tr></table>
    Dann erstellte ich eine gruppierte Abfrage,
    1) wobei ich die Tabelle 'Tab_NameDatum' auswählte.
    2) Dann schaltete ich von der normalen Entwurfsansicht um auf die SQL-Ansicht; dort tippte ich folgende SQL-Abfrage ein:
    Code:
    SELECT Vorname, Max(Datum) AS LztDatum
    FROM Tab_NameDatum
    GROUP BY Vorname;
    3) Dann speicherte ich das Ganze unter einem Abfragename.
    4) Dann führte ich die Abfrage aus:
    <table border='1' cellspacing='0' cellpadding='2' valign='middle' colspan='3'><colgroup><col width='28pt'><col width='66pt'><col width='66pt'></colgroup><tr><td align='middle'>4</td><td align='middle'>Vorname</td><td align='middle'>LztDatum</td></tr><tr><td align='middle'>5</td><td align='left'>Hans</td><td align='right'>19.03.2009</td></tr><tr><td align='middle'>6</td><td align='left'>Otto</td><td align='right'>23.03.2009</td></tr><tr><td align='middle'>7</td><td align='left'>Peter</td><td align='right'>25.05.2009</td></tr></table>
    5) Dann schaute ich mir zum Abschluss die Abfrage in der normalen Entwurfsansicht an:
    <table border='1' cellspacing='0' cellpadding='2' valign='middle' colspan='4'><colgroup><col width='28pt'><col width='85,5pt'><col width='111,75pt'><col width='127,5pt'></colgroup><tr><td align='middle'>16</td><td align='right'>Feld:</td><td align='left'>Vorname</td><td align='left'>LztDatum:*Datum</td></tr><tr><td align='middle'>17</td><td align='right'>Tabelle:</td><td align='left'>Tab_NameDatum</td><td align='left'>Tab_NameDatum</td></tr><tr><td align='middle'>18</td><td align='right'>Funktion:</td><td align='left'>Gruppierung</td><td align='left'>Max</td></tr><tr><td align='middle'>19</td><td align='right'>Sortierung:</td><td align='right'>*</td><td align='right'>*</td></tr><tr><td align='middle'>20</td><td align='right'>Anzeigen:</td><td align='middle'>x</td><td align='middle'>x</td></tr><tr><td align='middle'>21</td><td align='right'>Kriterien:</td><td align='right'>*</td><td align='right'>*</td></tr></table>
    Man kann natürlich anstelle von Punkt 2) auch diesen Punkt 5) wählen, um die Abfrage einzugeben.
    Liebe Grüße
    Anton Exl

    Windows 8.1
    Office 2013 Professional

  5. #5
    Office-Hilfe.com - Erfahrener
    Registriert seit
    28.07.2008
    Beiträge
    74
    besten Dank..

    Funktion Max... das nenne ich mal einfach...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SMS kostenlos versenden | Krankenversicherungsvergleich | Wii Modchip Xbox 360 Konsole | VLC Download | Forenuser - Die Foren Findmaschine