bulli: nur aktuellste Einträge anzeigen

Hallo,

ich habe in meiner DB folgende Werte zu stehen:

MP      Region  YYYY-MM-DD
10501 Aachen 04.05.2008
10501 Aachen 05.05.2008
10501 Aachen 06.05.2008
10501 Aachen 07.05.2008
10786 Aalen 04.05.2008
10786 Aalen 05.05.2008
10786 Aalen 06.05.2008
10786 Aalen 07.05.2008

Wie muss die Abfrage lauten, dass ich immer die Werte mit dem aktuellstem Datum angezeigt bekomme?

Mein bisheriger Versuch gibt mir lediglich ein Ergebnis (es sollten jedoch zwei angezeigt werden):
SELECT *,MAX('YYYY-MM-DD') FROM tab_wetter
group by 'Region'";

  1. yo,

    SELECT w.region, w.datum
    FROM tab_wetter w
    WHERE w.datum = (SELECT MAX(w2.datum)
                     FROM tab_wetter w2
                    )
    ;

    Ilja

    1. hmm, erstmal vielen Dank für dein Posting.

      Hab mal versucht, das so einzusetzen, jedoch kommt nur ne Fehlermeldung.

      Kannst du mir deinem Weg etwas näher erläutern? Wo kommt das w her, welche Bedeutung hat es?

      Gruß
      Bulli

      1. yo,

        Hab mal versucht, das so einzusetzen, jedoch kommt nur ne Fehlermeldung.

        wie sieht die fehlmeldung aus ?

        Kannst du mir deinem Weg etwas näher erläutern?

        benutzt du etwa mysql in einer version kleine als 4.1 ?

        Wo kommt das w her, welche Bedeutung hat es?

        das sind alias-namen für tabellen.

        Ilja

  2. YYYY-MM-DD ist nicht wirklich die Spaltenbezeichnung, oder? Nennen wir sie datum...

    wie wärs mit

    ORDER BY datum DESC LIMIT 1

    1. ... doch so war die Spaltenbezeichnung bis eben. Hab sie nun auf Datum geändert.
      Das mit dem Limit 1 würde funktionieren, jedoch erhalte ich dann nur den ersten Wert, ich möchte jedoch alle Werte bekommen, wo das Datum das höchste ist.

      in meinem Fall müsste die Ausgabe dann so aussehen:

      10501 Aachen 07.05.2008
      10786 Aalen 07.05.2008

      Gruß
      bulli

  3. n'abend,

    Diese Informationen vorausgesetzt:

    Wie muss die Abfrage lauten, dass ich immer die Werte mit dem aktuellstem Datum angezeigt bekomme?

    Entweder willst du nur die Datensätze eines bestimmten Datums (also des aktuellsten von mir aus), mit der Möglichkeit, dass manche Orte darin gar nicht auftauchen:

    SELECT w.*  
      FROM tab_wetter w  
     WHERE w.Datum = ( SELECT MAX(Datum) FROM tab_wetter );
    

    Oder du willst für jeden Ort den aktuellsten Datensatz haben:

    SELECT w.*  
      FROM tab_wetter w  
     WHERE w.Datum = ( SELECT MAX(Datum) FROM tab_wetter WHERE MP = w.MP );
    

    Wobei MP oder Ort oder Region oder was auch immer in der Subquery einzusetzen ist.

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Hallo globe,

      ich hab jetzt diesen Code genommen ...

      SELECT w.*

      FROM tab_wetter w
      WHERE w.Datum = ( SELECT MAX(Datum) FROM tab_wetter );

      
      >   
        
      ... und er macht das, was ich will !!!  
        
      Vielen Dank auch an alle anderen für eure Hilfe !!!  
        
      Gruß  
      Bulli