我正在尝试确认我的数据库正在计算的值是否正确。我写的查询给了我这个信息。 Pull_through列由数据库生成,标记为CalcQuantity的列是我用来检查数据库的。
SELECT RPT.PayPeriod
,RPT.Employee_Id
,RPT.Plan_Id
,RPT.Commission
,Pull_through
,Modifier
,ROUND(Commission * Modifier,2) AS CalcQuantity
,CASE WHEN Pull_through = Commission * Modifier then 'Correct'
WHEN Pull_through <> Commission * Modifier then 'ERROR'
END AS Confirmed
FROM Compensation..IN_Pullthrough PULL
left join RPT
on PULL.Employee_id = RPT.Employee_Id and PULL.Pay_Date = RPT.PayPeriod
WHERE PULL.Pay_Date = '2016-02-12'
计算正在运行,我已经能够直观地确认,但CASE WHEN语句无法正常工作。最初我认为这是因为我需要舍入我的小数位,但确认的结果仍然显示任何没有零的值的“错误”。我提供了相关列的屏幕截图,以便您查看查询结果。
CASE WHEN的问题是因为零或舍入而不是根据SQL使结果相等吗?
我必须每月更新信息并运行数据库的存储过程来计算新结果,这就是我构建此审核的原因。
提前致谢!
答案 0 :(得分:1)
这个答案有点推测,但您可以尝试的一件事是将ImageView
语句的LHS和RHS仅比较小数点后第二位:
CASE