2016-08-26 7 views
3

Wie bekomme ich den Gesamtbetrag pro Monat Datensätze aus einem Feld in einer Tabelle.Wie bekomme ich die Summe der Verkäufe pro Monat?

Ich habe 2 Tabellen, Kunden und Aktivitäten, innerhalb der Aktivität Kosten (Doppel) Feld und als Fremdschlüssel Kundennummer, möchte den Kunden und die Summe der Kosten für ein Datum angegeben.

machte ich die Abfrage den Kostenwert zu summieren, wenn das Datum 2016-01 ist in diesem Fall Januar will ich jeden Monat zeigen, Januar, Februar, März ....

select idcliente, 
     nombre, 
     sum(costo) as costo 
from actividad 
inner join cliente 
    on actividad.cliente_idcliente = cliente.idcliente 
where cliente_idcliente = 82 
group by fecha=2016-01; 

und dass diese Beratung gilt für alle meine Kunden nicht nur ein

Beispiel: ich habe eine Tabelle zeigen, wie diese will http://imgur.com/a/6jYlB

+0

Gruppe von MONAT (fecha) oder verwenden Sie DATEPART – scsimon

+0

Oder sehen DATE_FORMAT() – Strawberry

Antwort

2

Es sieht aus wie Sie ein Pivot-Abfrageergebnis mit den 12 Monaten in einem Jahr ist die Spalten werden sollen, und jeder Datensatz entspricht einem bestimmten Kunden. Versuchen Sie, die folgende Abfrage:

SELECT idcliente, 
     SUM(CASE WHEN MONTH(fecha) = 1 THEN costo ELSE 0 END) AS January, 
     SUM(CASE WHEN MONTH(fecha) = 2 THEN costo ELSE 0 END) AS February, 
     SUM(CASE WHEN MONTH(fecha) = 3 THEN costo ELSE 0 END) AS March, 
     SUM(CASE WHEN MONTH(fecha) = 4 THEN costo ELSE 0 END) AS April, 
     SUM(CASE WHEN MONTH(fecha) = 5 THEN costo ELSE 0 END) AS May, 
     SUM(CASE WHEN MONTH(fecha) = 6 THEN costo ELSE 0 END) AS June, 
     SUM(CASE WHEN MONTH(fecha) = 7 THEN costo ELSE 0 END) AS July, 
     SUM(CASE WHEN MONTH(fecha) = 8 THEN costo ELSE 0 END) AS August, 
     SUM(CASE WHEN MONTH(fecha) = 9 THEN costo ELSE 0 END) AS September, 
     SUM(CASE WHEN MONTH(fecha) = 10 THEN costo ELSE 0 END) AS October, 
     SUM(CASE WHEN MONTH(fecha) = 11 THEN costo ELSE 0 END) AS November, 
     SUM(CASE WHEN MONTH(fecha) = 12 THEN costo ELSE 0 END) AS December 
FROM actividad 
INNER JOIN cliente 
    ON actividad.cliente_idcliente = cliente.idcliente 
WHERE cliente_idcliente = 82 AND -- remove this to see monthly summary for all customers 
     YEAR(fecha) = 2016   -- change this to whatever year you want to see 
GROUP BY idcliente 
+0

dank ich den Namen des Kunden in einer Tabelle angezeigt werden soll und Monat für Monat den Wert der Kosten –

+1

Bearbeiten Sie Ihre Frage, um Ihre gewünschte Ausgabe anzuzeigen. –

+0

Ich möchte eine Tabelle wie diese anzeigen http://imgur.com/a/6jYlB –

2

Verwendung Monat Funktion

select 
     YEAR(fecha) as Anno 
     MONTH(fecha) as Mes, 
     min(idcliente), 
     min(nombre), 
     sum(costo) as costo 
from actividad 
     inner join cliente on actividad.cliente_idcliente=cliente.idcliente 
where cliente_idcliente=82 
group by year(fecha), month(fecha) 
+0

danke Ich möchte in einer Tabelle den Namen des Kunden und Monat für Monat den Wert der Kosten zeigen –

Verwandte Themen