MySQL zählt bei mir falsch / falsche Zählabfrage

Veränderung

Erfahrenes Mitglied
Hi!

Ich möchte die Werte der letzten sieben Tage summieren:
13,selectstandQM8F3.jpg


Leider funktioniert das nicht:
Code:
SELECT SUM(stand) as gesamtstand FROM `zaehler` WHERE tag<"20081004" GROUP BY tag LIMIT 6
Es gibt etwa 120.000 aus, was nicht sein kann. Muss man das noch groupen?
 
Hi,

wie kann das 120000 ausgeben? Wenn Du nach 'tag' gruppiert hast, müsstest Du ja schonmal für jeden Tag einen Datensatz bekommen. In Deinem Tabellenausschnitt sehe ich nichtmal mehrfach vorkommende Tage.
Außerdem könntest Du mal mit einem SELECT tag ... Deine Where-Klausel testen. Von welchem Typ ist die Spalte 'tag'? Ich weiß nicht, was MySQL aus einem " < 'string'" macht... ;)

LG
 
Moin,

das GROUP BY wurde nur zum Test nachträglich eingeführt, die korrekt bzw. die verwendete falsche Anfrage lautet
SELECT SUM(stand) as gesamtstand FROM `zaehler` WHERE tag<"20081004" LIMIT 6
Jeder Tag ist einmal vorhanden. Die Spalte tag ist ein varchar.
Er gibt genau 135323 aus.
SELECT tag FROM `zaehler` WHERE tag<"20081004" LIMIT 6 ergibt die ersten sechs Tage des Jahres, nicht die letzten 6 vor dem gewählten Oktobertag. Seltsam, kann man das nicht mit varchar sortieren?

Gruß nach Bremen, steige morgen von Cuxhaven in Bremen am Bahnhof um. ^^
 
Moin Veränderung,

Moin,
SELECT tag FROM `zaehler` WHERE tag<"20081004" LIMIT 6 ergibt die ersten sechs Tage des Jahres, nicht die letzten 6 vor dem gewählten Oktobertag. Seltsam, kann man das nicht mit varchar sortieren?

Natürlich geht das, Deinen Willen diesbezüglich könntest Du ja mit einem zusätzlichen ORDER by tag DESC bekunden.
Code:
SELECT tag FROM `zaehler` 
WHERE tag<"20081004" 
GROUP BY tag
ORDER by tag DESC 
LIMIT 6

Danke für den Gruß nach Bremen
Biber
 
Zurück