Ich versuche, eine Summe von Preisen aus einer anderen Tabelle einzufügen.mit WHERE-Klausel in INSERT-Trigger SQL
INSERT INTO Invoice_Of_Supplier (OrderSupplierID, PaymentStatus, Cost)
VALUES (
(SELECT OrderSupplierID FROM inserted),
0,
(SELECT SUM([Price(RUB)]) FROM Car
JOIN OrderOfSupplier_Car AS osc ON osc.CarID=Car.CarID
where osc.OrderSupplierID = (select OrderSupplierID from inserted)))
Ich habe eine Car
Tabelle mit Feldern price
, CarID
etc;
Order_Of_Supplier
Tabelle mit Feldern OrderSupplierID
, SupplierID
;
Und Order_Of_Supplier_Car
Tabelle, in der es eine Reihe von Autos für jeden Auftrag ist (Felder sind CarID
, OrderSupplierID
)
Ich brauche eine Zeile in der Tabelle einzufügen ‚InvoiceOfSupplier‘ mit den Feldern ‚OrderSupplierID‘, PaymentStatus
und Cost
.
OrderSupplierID
und PaymentStatus
sind ok, aber Cost
ist NULL
und ich kann nicht verstehen, warum. Wenn ich auf osc.OrderSupplierID = 2
ändere (bekomme OrderSupplierID
direkt) funktioniert es niether. Es funktioniert nur, wenn ich alle Bedingungen wie "WHERE" entferne, aber in diesem Fall erhält es den "Preis (RUB)" aller Aufträge, nicht den, den ich brauche.
EDIT: Das Problem ist, dass in dem Moment-Daten in Order_Of_Supplier
eingefügt wurden keine Daten in Order_Of_Supplier_Car
dort war.
'SUM ([Preis (RUB)])' .. Preis ist eine Funktion? – Moumit
Unmöglich zu helfen, ohne mehr über Ihre Daten zu erfahren. Woher wissen wir, dass Sie nicht genau die richtigen Ergebnisse erhalten? Bitte posten Sie die Beispieldaten und die Ergebnisse, die Sie erwarten würden. –
Entschuldigung, Preis (Rub) ist eine Spalte, keine Funktion. –