Я пытаюсь подтвердить, что значения, вычисляемые моей базой данных, верны. Запрос, который я написал, дает мне эту информацию. Столбец 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?
Я должен обновлять информацию каждый месяц и запускать хранимую процедуру для базы данных, чтобы вычислить новые результаты, поэтому я создал этот аудит.
Заранее спасибо!