2

私は立ち往生しています、私は2つのテーブルを持っています:SalesそしてSalesDetails

Sales: InvNum、Total、Discount、Nettotal など...

SalesDetails: InvNum、ItemCode、Amountなど..

質問は。アイテムごとに与えられる割引を計算したい。コードを使用してビューで実行しました。

SELECT dbo.Sales.InvNum, 
       dbo.SalesDetails.Amount
           /dbo.Sales.Total*dbo.Sales.Discount AS DiscountPerItem 
FROM dbo.Sales 
   INNER JOIN dbo.SalesDetails ON dbo.Sales.InvNum = dbo.SalesDetails.InvNum

正しく機能していますが、問題は正確な結果が得られないことです。例 :

Sales.Total = 33,355,7.7500
Sales.Discount = 2,948.7500

SalesDetails.ItemCode = 1
SalesDetails.DiscountPerItem = 1.4744 (wrong result by SQL)

Etc (item2, 3, 4, .....) つまり、DiscountPerItem は(198 / 33,355,7.7500 * 2,948.7500) = 1.75 ではなく = 1.4744 である必要があります。このコードの誤りは何ですか。前もって感謝します

4

1 に答える 1

0

丸め誤差を減らすために、最初に乗算を試みます

SELECT dbo.Sales.InvNum, 
       (dbo.SalesDetails.Amount*dbo.Sales.Discount)/dbo.Sales.Total 
           AS DiscountPerItem 
FROM dbo.Sales 
   INNER JOIN dbo.SalesDetails ON dbo.Sales.InvNum = dbo.SalesDetails.InvNum
于 2013-02-05T12:21:13.907 に答える