2
당 할인에 대한 SQL보기에 잘못된 계산을 수신하고 나는 나는이 개 테이블 붙어 가지고 있어요 InvNum, 총, 할인, Nettotal 등 ...내가 ITEM
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)
기타 (항목 2, 3, 4, .....) DiscountPerItem가 될 가진다고 (198/33,355,7.7500 * 2,948.7500) = 1.75 = 1.4744하지 무엇 이 코드에서의 실수입니다. 미리 감사
라운딩 에러를 감소시키는 제 곱셈 : ROUND (CAST (dbo.SalesDetails.Total 진수 (32, 4))/CAST (NULLIF (dbo.Sales.Total, 0) AS 10 진수 (32, 4)) * CAST (dbo.Sales.DiscountMoney AS 10 진수 (32, 4)), 2) –