我正在尝试根据使用 TransactionDetail 和 SalesDetail 表中的字段的公式在我的 TransactionDetail 表中设置 AmountOwed 的值。内部 Select 查询有效并返回预期值。使用的字段有以下几种:
TotalTender - money
PriceEntered - money
TaxRate - float
----- SQL查询 -----
Update [POSDatabase].[dbo].[TransactionDetail]
Set AmountOwed =
(Select (TotalTender - (Select sum(PriceEntered+(PriceEntered*TaxRate*.01))
from POSDB.dbo.SalesDetail as Sales
where Sales.TransactionID = Trans.ID))
From POSDB.dbo.TransactionDetail as Trans
Where TransactionDetail.ID = Trans.ID)
Where ID = 4207
----- 结束 SQL 查询 -----
当我运行此查询时,它说它影响了 1 行,但是当我尝试查看表(从表中选择 *)时,查询只是旋转。奇怪的是,如果我向下滚动,它显示的所有记录最多比此查询中标识的 ID 少 5-6。
我想也许我的数据类型不匹配,但是在执行 CONVERT 或 CAST 以将结果更改为货币类型之后,也会发生同样的事情。
有什么建议吗?