2016-11-16 2 views
0

Wie würde ich die Menge einer Spalte abhängig vom Namen einer anderen Spalte hinzufügen?SQL-Summenquantität abhängig vom Feldnamen

Zum Beispiel habe ich 3 Spalten:

NAME:  StockCode: Qty: 
Blackbirds TO12   2 
Blackbirds TO14   4 
Lions  TO55   54 
Tigers  TO41   2 
Lions  TO41   4 

Wie würde ich die Menge zusammen sowohl für die Amseln und Löwen hinzufügen, so dass es nur eine Zeile ist, so wäre das Ergebnis wie folgt:

NAME:  StockCode:  Qty: 
Blackbirds TO12   6 
Lions  TO41   58 
Tigers  TO32   2 
+1

Sie könnten GROUP BY verwenden, aber die Lagercodes unterscheiden sich z. Für Lions gibt es T055 und T041. Wie bestimmen Sie, welche zu verwenden? – VDK

+0

Der Lagercode wird nur verwendet, um alle Produkte mit diesem Lagercode zu erhalten, alle Lagerbestandscodes beziehen sich auf ein Produkt, nur unterschiedliche Farben. –

+0

Ah ok, in diesem Fall interessiert Sie diese Spalte nicht? Da Sie nur daran interessiert sind, die Summe jedes Produkts zu erhalten? – VDK

Antwort

0

Sie können dies versuchen:

SELECT NAME, SUM(QTY) as qty FROM [YourTable] 
GROUP BY NAME 

PS: Da die StockCode für s unterschiedlich sind ame NAME, Sie können nicht in die GROUP BY aufgenommen werden. Incase, StockCode spielt keine Rolle, und Sie brauchen nur die SUM basierend auf NAME, dann können Sie die folgende Lösung verwenden.

SELECT NAME,StockCode, SUM(QTY) OVER(PARTITION BY NAME) as qty FROM [YourTable] 
2

Es wie die Regel für „Stock-Code“ aussieht, ist der kleinste Wert zu finden.

SELECT NAME, min(stockCode), SUM(QTY) as qty 
FROM tableName 
GROUP BY NAME 
Verwandte Themen