nur aktuellste Einträge anzeigen
bulli
- datenbank
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'";
yo,
SELECT w.region, w.datum
FROM tab_wetter w
WHERE w.datum = (SELECT MAX(w2.datum)
FROM tab_wetter w2
)
;
Ilja
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
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
YYYY-MM-DD ist nicht wirklich die Spaltenbezeichnung, oder? Nennen wir sie datum...
wie wärs mit
ORDER BY datum DESC LIMIT 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
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...
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