存储过程将不同表中的值相乘
Posted
技术标签:
【中文标题】存储过程将不同表中的值相乘【英文标题】:Stored procedure multiplying values from different tables 【发布时间】:2021-04-14 11:58:24 【问题描述】:所以我被存储过程困住了。
我在数据库中有这两个表:
交易
tID | cID | carID | eID | tDate | PickupDate | ReturnDate |
---|---|---|---|---|---|---|
1002 | 1006 | 1004 | 104 | 2018-04-18 | 2018-04-28 | 2018-04-2 |
汽车
CarID | Make | Model | Type | Year | Price |
---|---|---|---|---|---|
1004 | Ford | Focus | Hatch | 2019 | 140.00 |
出于税收目的,我需要计算交易成本的 10%。我已经设法获得了租金的长度并将其存储到一个变量中,但无法弄清楚如何将交易中使用的汽车价格乘以价格的长度,然后显示结果。
这是我目前的代码:
CREATE PROCEDURE Tax_Due
@tID INT
AS
DECLARE @carPrice as INT
DECLARE @rentLength as INT
SELECT @rentLength = DATEDIFF(day, PickupDate, ReturnDate)
FROM [Transaction]
WHERE tID = @tID
SELECT @carPrice = Price
FROM Car
WHERE
【问题讨论】:
您的代码不是 mysql 代码。你真正使用的是什么数据库? 我正在使用 Microsoft SQL Server Management Studio 18 问题不能将不同表中的值相乘,因为您已经将“@rentength”放入变量中。这个问题不重要,它来自哪里。此外,在他/她取车之前不太可能还车。请重新定义您的问题和表格。 【参考方案1】:我不明白为什么你不能像这样加入表格并进行计算
SELECT DATEDIFF(day, PickupDate, ReturnDate) * Price.Price * .1 as tax
FROM [Transaction] join [Price] on Transaction.carID = Price.carID
WHERE tID = @tID
【讨论】:
非常感谢。成功了,只是改了几个名字。以上是关于存储过程将不同表中的值相乘的主要内容,如果未能解决你的问题,请参考以下文章
用于向表中添加新行的存储过程,它检查值以验证它们在外部表上的值