0

我有一个用于计算价格的表格,该表格查找表格以获取每个零件的价格,然后将其乘以订购的零件数量。

但是,订购的零件数量在同一个表中,并且在添加值时,我似乎无法找到访问表中同一行中的值的方法。

这是不可能的,还是有更好的方法来做到这一点?

这是与此有关的表格:

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 值乘以零件表中引用的每个零件的价格。但是,我不能坚持硬值,因为订购的数字可能会在以后发生变化,这意味着总价格会发生变化。

目前我的插入语句只是:

INSERT INTO PartOrder VALUES (001, 001, 001, 4, 'R', NOW(), (4*(SELECT PricePerPart FROM Part WHERE PartID = 001)));
4

1 回答 1

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;
于 2013-03-15T08:32:00.900 回答