|
Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 19.10.2005 09:19:09 Titel: MySQL: fehlerhafte Abfrage bei sum() und LIMIT |
|
|
Hallo Jan, hallo Leute,
ich habe eine Tabelle mit ID, Datum und einen Wert:
Code: |
ID | Datum | Wert
1 | 2005-10-01 | 1
2 | 2005-10-02 | 1
3 | 2005-10-03 | 1
4 | 2005-10-04 | 1
5 | 2005-10-05 | 1
6 | 2005-10-06 | 1
7 | 2005-10-07 | 1
|
Wenn ich nun die Abfrage
Code: |
SELECT sum(Wert) FROM `tabelle` WHERE `Datum` BETWEEN '2005-10-02' AND '2005-10-06'
|
mache, kommt als Ergebnis 5 raus.
Mache ich jedoch folgende Abfrage
Code: |
SELECT sum(Wert) FROM `tabelle` ORDER BY `ID` DESC Limit 5
|
kommt als Ergebnis 7 heraus.
Lasse ich jedoch das sum() weg, dann kommt bei der Abfrage mit dem Limit nur die letzten 5 Einträge. Lasse ich das sum() bei der BETWEEN Abfrage weg, kommen ebenfalls 5 Einträge heraus.
MySQL verhält sich gleich, wenn ich sum() weglasse, jedoch anders und meines Erachten falsch (bei der Limit Abfrage), wenn ich mit sum () arbeite.
Ist das ein Bug, oder darf ich so nicht arbeiten? |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
l-roy Gast
|
Verfasst am: 19.10.2005 09:40:25 Titel: |
|
|
Wenn ich mich recht entsinne, bezieht sich LIMIT nur und auschließlich auf die Ausgabe (!) der Ergebnisse, nicht auf die Logik der zur Abfrage heranzuziehenden Werte, d.h. wenn Du sum() ohne eine Gruppierung benutzt, kommt eh immer nur ein Wert heraus, so dass die Ausgabelimitierung nicht zum Tragen kommt.
Willst du die zur Summe heranzuziehenden Daten einschränken, mußt du die WHERE-Klausel benutzen. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Sir Quicksand Häufiger Poster
Anmeldungsdatum: 19.01.2005 Beiträge: 304 Wohnort: Hannover
|
Verfasst am: 19.10.2005 10:36:11 Titel: |
|
|
Jau, könnte stimmen. Die Lösung ist eine geschachtelte Abfrage:
Code: |
SELECT SUM( 7H1809160 )
FROM (
SELECT `7H1809160`
FROM `picks`
ORDER BY `ID` DESC
LIMIT 7
) AS blablabla
|
Jetzt funzt es. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|