我有一张表,用于计算价格,查看表格以获得每个零件的价格,然后将其乘以所订购零件的数量。
这个订购的零件数量在同一个表中,但是在添加值时,我似乎无法找到一种方法来访问表中同一行的值。
这是不可能的,还是有更好的方法可以做到这一点?
以下表格涉及:
CREATE TABLE PartOrder
(
OrderID INTEGER NOT NULL,
CustomerID INTEGER NOT NULL,
PartID INTEGER NOT NULL,
NumParts INTEGER NOT NULL,
Status CHAR(1) NOT NULL
CHECK (Status IN ('R', 'H',
'E', 'C')
OrderTime TIMESTAMP NOT NULL,
TotalCost DECIMAL,
CONSTRAINT partOrder_pk PRIMARY KEY (OrderID),
CONSTRAINT partOrder_fk1 FOREIGN KEY (CustomerID) REFERENCES Customer ON DELETE CASCADE,
CONSTRAINT partOrder_fk2 FOREIGN KEY (FlightID) REFERENCES Part ON DELETE CASCADE
);
我希望它能够获取numParts值并将其乘以parts表中引用的每个部件的价格。但是,我不能坚持硬值,因为订购的数字可能会在以后发生变化,这意味着totalPrice会发生变化。
目前我的插入声明只是:
INSERT INTO PartOrder VALUES (001, 001, 001, 4, 'R', NOW(), (4*(SELECT PricePerPart FROM Part WHERE PartID = 001)));
答案 0 :(得分:3)
您可能也想看看SELECT INTO http://www.postgresql.org/docs/8.1/static/sql-selectinto.html
或者你可以选择
INSERT INTO PartOrder
SELECT (1,1,1,4,'R',NOW, (4*Part.PricePerPart))
FROM Part
WHERE Part.PartId = 1;