我试图缩短我的存储过程,我觉得我可以使用一个而不是两个。
第一个表格(dbo.Table1
)包含:
ProductID, DiscountID
第二个表格(dbo.Table2
)有:
Description, DiscountAmount and DiscountID
我想获得折扣金额,但我只有产品ID。目前我正在使用存储过程来调用discountID
的第一个表。然后我在第二个存储过程中使用discountID
从第二个表中获取DiscountAmount
。
是否有办法合并这两个存储过程,以便我可以使用productID
在一个过程中获取DiscountAmount
?
答案 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);