2013-03-15 55 views
0

我有一张表,我用它来计算查找表以获取每个零件价格的价格,然后将其乘以订购零件的数量。在SQL表的同一行中检索值

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

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

下面是表这个顾虑:我想它,这样它会采取为NumParts值和在每部分表中引用部分的价格乘以

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

。然而,我不能坚持硬性价值,因为订购的数量可能会稍后改变,这意味着总价格将会改变。

此刻我的INSERT语句就是:

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

去请,根据样本数据和**当前查询**提供DDL(创建表语句),样本数据和所需输出。 – peterm 2013-03-15 08:10:15

+0

您正在使用哪些DBMS?甲骨文? Postgres的? – 2013-03-15 08:21:34

+0

我正在使用postgres – Matt 2013-03-15 08:23:03

回答