J'ai un schéma de table qui est essentiellement un tas d'informations de transaction avec un champ DateTime J'ai besoin de générer un total mensuel de transactions, qui est la somme (montant), mais je Possédé de ce que je groupe par. Chaque rangée de SQL devrait contenir le total mensuel (donc une ligne du 09 janvier, février 09 ... Jan 2010 et ainsi de suite). Je pense que je devrais devoir générer la table par code, mais j'aimerais apprendre s'il existe un moyen de résoudre ce problème en utilisant SQL. P> Toute aide serait appréciée! (Utilisation de MySQL 5.3, PHP5) P> P>
5 Réponses :
J'ai toujours utilisé mensuel () et année () ... qui semble un peu comme un hack pour moi, mais ça marche ...
SELECT SUM(amount) FROM yourTable GROUP BY MONTH(date), YEAR(date)
SELECT EXTRACT(YEAR_MONTH FROM when), sum(amount)
FROM TRANSACTION
GROUP BY EXTRACT(YEAR_MONTH FROM when)
J'essaierais quelque chose comme ça:
SELECT YEAR(when) AS year, MONTH(when) AS month, SUM(amount) AS amount FROM TRANSACTION GROUP BY YEAR(when), MONTH(when) ORDER BY YEAR(when), MONTH(when)
Vous devez grouper par extraits.
SELECT
EXTRACT(MONTH FROM when) as month,
EXTRACT(YEAR FROM when) as year,
SUM(amount)
FROM
transaction
GROUP BY
month,
year
ORDER BY
year DESC,
month DESC
Je pense que vous voulez:
SELECT SUM(amount) FROM yourTable GROUP BY CONCAT(YEAR(date), '-', MONTH(date))
Il suffit de remarquer pour newbie,
quand code> est le nom de la colonne de table et non une fonction MySQL.