簡體   English   中英

檢索SQL表同一行中的值

[英]Retrieve values in same row of SQL table

我有一個用於計算價格的表,該表查找一個表以獲取每個零件的價格,然后將其乘以訂購的零件數。

但是,訂購的零件數量在同一張表中,並且在添加值時,我似乎找不到在表中同一行中訪問值的方法。

這是不可能的,還是有更好的方法來做到這一點?

這是該表:

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值乘以部件表中引用的每個部件的價格。 但是,我不能堅持使用硬值,因為訂購的數量以后可能會更改,這意味着totalPrice將更改。

目前,我的插入語句僅是:

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

您可能還想看看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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM