Kurze Frage, ich habe die folgende Tabelle
+-------------+---------------------+
| total | o_date |
+-------------+---------------------+
| 35 | 01-11-2009 19:32:44 |
| 41.5 | 01-12-2009 22:33:49 |
| 61.5 | 01-23-2009 22:08:24 |
| 66 | 02-01-2009 22:33:57 |
| 22.22 | 02-01-2009 22:37:34 |
| 29.84 | 04-20-2009 15:23:49 |
+-------------+---------------------+
Ich möchte die Summe für jeden Monat addieren und die Summe nach Monat zusammenfassen. So zum Beispiel Jan-> 138 Feb-> 88.2 Apr-> 29.84
Irgendwelche Hinweise darauf. Vielen Dank
Diese Lösung gibt Ihnen den Monatsnamen als Spalte Ihrer Ergebnismenge an, gefolgt von der Gesamtsumme nach Bedarf.
SELECT MONTHNAME(o_date), SUM(total)
FROM theTable
GROUP BY YEAR(o_date), MONTH(o_date)
select year(o_date), month(o_date), sum(total)
from table
group by year(o_date), month(o_date);
Monatliche und jährliche Daten aus der MySQL-Datenbank abrufen:
SELECT MONTHNAME(o_date), YEAR(o_date), SUM(total)
FROM the_table
GROUP BY YEAR(date), MONTH(date)
Wie ich mich aus einem früheren MySQL-Leben erinnere, eine Abfrage wie
SELECT LEFT(o_date, 7) month, SUM(total) FROM TABLE group BY month
verwendet den Index für das Feld o_date (den ich leider nicht für YEAR()
und MONTH()
garantieren würde).
Sie müssten jedoch das Feld month
formatieren, und dies wird höchstwahrscheinlich auf keinem anderen Datenbanksystem indiziert ...
SELECT SUM(total)
FROM table
GROUP BY MONTH(o_date)
SELECT year(FROM_UNIXTIME(created)) year, month(FROM_UNIXTIME(created)) month, sum(amount) total
FROM {my_table}
GROUP BY year, month
ORDER BY year, month;
Versuchen Sie es mit Group BY
:
select count(A_id) As Tid,Day(CrDate) from Ap Group By Day(CrDate)
Ja, arbeite für mich so:
SELECT MONTHNAME(date), SUM(`in`) as SOMA, date FROM transactions GROUP BY YEAR(date), MONTH(date)
Aber ich muss nur das Ergebnis dieses Jahres (2014) zeigen. Wie kann ich das tun?