SQL-Summenfeld, wenn Spaltenwerte übereinstimmen

8

Der Titel war schwer zu formulieren, aber die Frage ist ziemlich einfach. Ich habe überall gesucht und konnte nichts für mein spezielles Problem finden, also ist es hier. Ich verwende Microsoft SQL Server Management Studio 2010.

Tabelle sieht derzeit so aus

%Vor%

Ich brauche die Tabelle, um mir die Summe der Werte zu zeigen, wo der Produktname übereinstimmt - so

%Vor%

Ich habe es einfach versucht

%Vor%

Aber das obige funktioniert nicht. Ich bekomme am Ende die Summe aller Werte in der Spalte. Wie kann ich basierend auf dem Produktnamen die Summe zusammenfassen?

Danke!

    
Ashton Sheets 03.10.2012, 16:53
quelle

2 Antworten

11
%Vor%

SQL Fiddle Beispiel

    
RedFilter 03.10.2012, 16:55
quelle
2

Immer wenn Sie eine Aggregatfunktion ( SUM , MIN , MAX ...) mit einer Spalte in der SELECT -Anweisung verwenden, müssen Sie GROUP BY verwenden. Dies ist eine Gruppenfunktion, die angibt, nach welcher Spalte die Aggregation gruppiert werden soll. Außerdem können Spalten, die nicht im Aggregat enthalten sind, nicht in Ihrer SELECT -Anweisung stehen.

Zum Beispiel ist die folgende Syntax ungültig, weil Sie Spalten angeben ( col2 ), die nicht in Ihrem GROUP BY sind (auch wenn MySQL dies zulässt):

%Vor%

Die Lösung für Ihre Frage wäre:

%Vor%     
Kermit 03.10.2012 17:16
quelle

Tags und Links