2016-05-03 12 views
0

Ich habe eine Tabelle namens orderItems, die zwei Spalten hat, Menge und Stückpreis.Es hat auch einen Fremdschlüssel ordernumber in dieser Tabelle.Wie kann ich SUM Datensätze von einer Tabelle zu einem anderen nach der Multiplikation von zwei Spalten

Ich habe eine andere Tabelle namens ordergroup mit Primärschlüssel ordernumber, die SavedTotal Spalte enthält, die die Bestellsumme basierend auf der Menge * Stückpreis für alle Auftragspositionszeilen ist, die diese ordernumber verweisen.

Nun, was ich mit kämpfen, ist die SQL-Abfrage, die alle Bestellartikel basierend auf einer bestimmten Bestellnummer erhalten und die Gesamtkosten berechnen können.

Ich habe es geschafft, die Multiplikation zu tun, aber ich vermisse die SUMME, hier ist meine SQL-Abfrage (basierend auf SQL Server) so weit.

UPDATE OrderGroupNew 
set OrderGroupNew.SavedTotal = OrderItemNew.UnitPrice*OrderItemNew.QUANTITY 
    FROM OrderItemNew 
    inner join OrderGroupNew on OrderItemNew.OrderNumber=OrderGroupNew.OrderNumber 

jede Hilfe ist willkommen

Antwort

1
UPDATE OrderGroupNew 
SET SavedTotal = (
    SELECT SUM(UnitPrice * Quantity) 
    FROM OrderItemNew 
    WHERE OrderNumber = OrderGroupNew.OrderNumber 
) 
+0

Prost danke! –

0

Sie können auch eine TVP verwenden:

;With o as (
     select OrderItemNew.OrderNumber as OrderNumber, 
     SUM(OrderItemNew.UnitPrice*OrderItemNew.QUANTITY) as OrderSum 
     Group by OrderItemNew.OrderNumber) 
UPDATE OrderGroupNew 
set OrderGroupNew.SavedTotal = o.OrderSum 
FROM o 
INNER JOIN OrderGroupNew on o.OrderNumber=OrderGroupNew.OrderNumber 

Nun, die erste Antwort zu korrekt ist. Wählen Sie das beste in Bezug auf Leistung :) (nicht wissen, welche die besten sein wird, um ehrlich zu sein!)

+0

Da meine Anwendung für eine Demo ist, kümmert mich die Performance nicht wirklich und die andere hat so funktioniert :) Danke, dass du dir die Zeit genommen hast, auch das zu schreiben! könnte anderen Menschen in der Zukunft helfen! –

Verwandte Themen