as i'm in a bit of a lul at the moment I thought I've have a crack at it, and its one of the most comprehensive set of DDL I've seen on SSC, even if it is a little overkill.
One think I did notice is that the Extended cost is set as a Decimal(18,2) and I believe money has 4 Decimal places, so you might get truncation occuring.
You also need to decide what to do if there is a rounding issue on the Unit cost calculation, eg 200.0000/3 is 66.6667, rounding up will give incorrect values when multiplied back out, rounding up 66.67*3 = 200.01 and if you round down its 199.98.
The Only column I cant seem to get data for is the ExtendedPrice, but this is a bare bones stab at what you might be looking for.
CREATE PROCEDURE InsertSalesOrderPart
@OrderNumber Int
,@PartNumber Int
,@Quantity Int
,@ExtendedCost Money
AS
Insert into SalesOrderPart
(OrderNumber
,PartID
,Quantity
,UnitPrice
,ExtendedPrice
,UnitCost
,ExtendedCost
)
Select
@OrderNumber
,p.PartID
,@Quantity
,p.Price
,0 ExtendedPrice -- WHERE DOES THIS COME FROM
,@ExtendedCost/@Quantity UnitCost
,@ExtendedCost
From Part p
where
P.PartID=@PartNumber
I would suggest runing this first and check the data you get for a specific set of paramaters.
DECLARE@OrderNumber Int = <replace with orderno>
,@PartNumber Int = <replace with partId>
,@Quantity Int = <replace with Quantity>
,@ExtendedCost Money =<replace with cost>
Select
@OrderNumber
,p.PartID
,@Quantity
,p.Price
,0 ExtendedPrice --Where does this comefrom
,@ExtendedCost/@Quantity UnitCost
,@ExtendedCost
From Part p
where
P.PartID=@PartNumber
_________________________________________________________________________
SSC Guide to Posting and Best Practices