使用来自不同表的列创建存储过程

时间:2013-04-11 09:21:38

标签: sql stored-procedures

我有4个表:customer(PK custId)order(PK orderID)orderitem(PK orderItemId)以及products(PK ProductID)

orderitem表分别将productID和OrderItemID作为产品和订单的外键。

Orderitem:
-----------------------
orderID | productID | OrderItemID 



Products:
-------------------------------- 
productID | unitcost | OrderItem 

表有数量列

我想创建一个存储过程,它将使用来自产品表的unitcost和来自orderItems表的数量来计算orderItem中的totalcost列。

如果可能的话,我怎样才能让程序中的orderID来自Orders表,因为它是PK和FK到orderItem

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您的存储过程的基本查询可能如下所示

SELECT i.*,
       p.unitcost * i.quantity totalcost
  FROM orderitem i INNER JOIN
       order o ON i.orderID = o.orderID INNER JOIN
       products p ON i.productID = p.ProductID
 WHERE i.orderID = 12345

如果您指定了您正在使用的RDMBS,则可以帮助您将其包装在SP中。