Goedemorgen,

Ik heb een database met een tabel genaamd: dag_statistieken, daarin kolommen genaamd datum (date) en een totale_omzet (varchar) field.

Voorbeeld:

120,45 - 06-12-2016.
99,95 - 04-11-2016

Ik wil nu per maand een grafiek weergeven met daarin de totale omzet.

Hoe krijg ik dit voor elkaar? Select * FROM dag_statistieken WHERe year = 2016 and group by maand? Zo iets denk?

[size=xsmall]Toevoeging op 06/12/2016 11:21:53:[/size]

Dit lijkt te werken:

SELECT * FROM dag_statistieken group by Year(datum), Month(datum)
Zoiets? SELECT MONTH(dag_statistieken) AS maand, totale_omzet FROM dag_statistieken GROUP BY maand

En verder hoort een totale omzet niet als varchar te worden opgeslagen, nu kan je er niet mee rekenen.
aangenomen dat je de omzet in een bruikbaar formaat op gaat slaan (een decimal met 2 cijfers achter de komma?)


SELECT MONTH(datum) AS maand, YEAR(datum) AS jaar, SUM(totale_omzet) AS maandomzet
FROM dag_statistieken
WHERE YEAR(datum) = 2016
GROUP BY MONTH(datum), YEAR(datum)
ORDER BY maand, jaar


Op zich is YEAR(datum) overbodig als je ook in WHERE het jaar bepaalt, maar om te voorkomen dat je de query herbruikt in een andere situatie en dan de omzet over 2016 t/m 2017 sommeert, neem ik hem bij voorkeur toch op
Hartelijk dank voor de nuttige toevoegingen!
Een DATE kolom was toch van het formaat YYYY-MM-DD? Zoja, dan klopt je sample data niet.
En kijk dan ook even naar het decimaalteken: een komma is ook niet mogelijk in een numeriek veld (en PHP kan ook alleen maar met een punt overweg)

Reageren