连接两个表将两个存储过程转换为一个SQL

时间:2014-05-22 12:44:31

标签: sql database stored-procedures join

我试图缩短我的存储过程,我觉得我可以使用一个而不是两个。

第一个表格(dbo.Table1)包含:

ProductID, DiscountID

第二个表格(dbo.Table2)有:

Description, DiscountAmount and DiscountID

我想获得折扣金额,但我只有产品ID。目前我正在使用存储过程来调用discountID的第一个表。然后我在第二个存储过程中使用discountID从第二个表中获取DiscountAmount

是否有办法合并这两个存储过程,以便我可以使用productID在一个过程中获取DiscountAmount

2 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

SELECT t2.DiscountAmount 
FROM Table2 t2 inner join Table1 t1
on t2.DiscountID = t2.DiscountID
WHERE t1.ProductID = @ProductId

这里是Fiddle

答案 1 :(得分:0)

您的存储过程只执行

select discountid from table1 where productid = @productid;

另一个只做

select discountamount from table2 where discountid  = @discountid;

对我来说看起来有点过分; - )

但是,是的,你当然可以将这两个陈述结合起来:

select discountamount from table2 where discountid  = 
   (select discountid from table1 where productid = @productid);