MySQL Sum() regner forkert?

Tags:    mysql

Hvorfor regner denne forkert?

SELECT `bruger`, SUM(hvormange) as `optjent` FROM `haroptjent` WHERE `uge` = 12 ORDER BY sum(hvormange) DESC LIMIT 0,1

SUM(...) tager den ikke alle felter i "hvormange" og lægger sammen for at give det højeste antal? I såfald, viser den helt forkert her.

Hvad gør jeg forkert?!



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 14 karma
Sorter efter stemmer Sorter efter dato
Skal den tælle op for hver bruger?

SELECT `bruger`, SUM(hvormange) as `optjent` FROM `haroptjent` WHERE `uge` = 12 GROUP BY `bruger` ORDER BY sum(hvormange) DESC LIMIT 0,1

Med group by fortæller du mysql, at funktioner såsom SUM() skal bruges for de transaktioner der tilhører en bruger.




For mig ser det ud som om dette skyldes at du har en LIMIT på din SQL streng hvilket giver dig det forkerte resultat.



Her er min tabel:
Fold kodeboks ind/udKode 


Her er rækkerne:
Fold kodeboks ind/udKode 


Prøver jeg følgende MySQL Output:
SELECT * FROM `haroptjent` where uge = 12 order by sum(hvormange) desc

Får jeg én række ud med
Fold kodeboks ind/udKode 


Brugeren "8" har kun 8 i hvormange og findes kun én gang. Så den tæller ikke korrekt?!



Indlæg senest redigeret d. 19.03.2012 13:56 af Bruger #9820
Tak Stefan, tusind tak!



Tak er godt, en stemme, som beskrevet øverst i din tråd, er endnu bedre, Jesper :)

Mvh.

Kasper (TSW)



t