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 行に影響したと表示されますが、テーブルを表示しようとすると (Select * from Table)、クエリがスピンするだけです。奇妙なことに、下にスクロールすると、このクエリで識別された ID よりも 5 ~ 6 少ないすべてのレコードが表示されます。
データ型の不一致があるのではないかと思いましたが、結果をお金の型に変更するために CONVERT または CAST が実行された後も同じことが起こります。
何か提案はありますか?