2016-08-08 23 views
2

Ich bin sehr neu in SQL und wurde mit, was mir scheint, eine komplexe Aufgabe vorgestellt. Ich habe einen Tisch, der die Anzahl der verschiedenen Früchte an einem bestimmten Tag erzeugt. Also:Bedingte Summe SQL

    G. A G.B 
2016-06-01 Banana 45 0  
2016-06-01 Pear 158 0 
2016-06-01 apple 0 23 
.... dates continue 

Ich brauche eine Art bedingter Summe zu entwickeln, wie viele Arten von Obst zu zählen sind mit einem bestimmten Grad an einem bestimmten Datum gekauft. In dem oben genannten Fall zu dem angegebenen Datum (2016-06-01) gäbe es also 203 Fruchtstücke der Klasse A (G.A) und 23 Fruchtstücke der Klasse B (G.B).

natürlich eine Art von

Sum(case when date=date then Grade else 0). 

Aber ich bin hier wirklich ratlos. Bitte, jede Hilfe würde sehr geschätzt werden !!!!

+1

Können Sie nach einer Probe Ergebnismenge erwartet. Geben Sie außerdem an, welche Datenbank Sie verwenden. Und nein, ich denke nicht, dass eine bedingte Summe erforderlich ist. Einfache Aggregatfunktionen sollten den Zweck erfüllen. – sstan

+0

Verschieben Sie die DATE-Bedingung in die WHERE-Klausel. – jarlh

Antwort

2

Eine einfache Gruppe Klausel sollte den Job hier (Anmerkung: nicht getesteten Code)

select date, sum(grade_a) as grade_a_sum, sum(grade_b) as grade_b_sum 
from sales 
group by date; 

Dadurch werden die Noten für jeden Tag geben. Einzelne Daten können dann bei Bedarf ausgewählt werden.

0

Wird nicht einfach Gruppe durch die Arbeit machen ..

Select 
date, 
sum(GA) as GA, 
sum(GB) as GB 
from 
Table 
group by date