テーブルを検索して部品あたりの価格を取得し、注文した部品の数を掛けて価格を計算するために使用するテーブルがあります。
ただし、注文されたこの数の部品は同じテーブルにあり、値を追加するときにテーブルの同じ行の値にアクセスする方法が見つからないようです。
これは不可能ですか、またはこれを行うためのより良い方法はありますか?
これが関係する表は次のとおりです。
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)));