检索SQL表的同一行中的值

时间:2013-03-15 08:06:40

标签: sql postgresql

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

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

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

以下表格涉及:

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)));

1 个答案:

答案 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;