У меня есть уравнениеSQL деления на ноль не NULLIF работает
((P.RealisedConsumption/(NULLIF((PO.ActualQty * P.QuantityPO), 0)/1000000)) - 1) * 100 AS FibreScrapFactor
Это работает для примера того, что я смотрю. Однако, если я вынимаю предложение where (поэтому у меня есть все заказы), я получаю деление на нулевую ошибку.
Если я ограничить/+1000000 до 10, которые я затем
((P.RealisedConsumption/(NULLIF((PO.ActualQty * P.QuantityPO), 0)/10)) - 1) * 100 AS FibreScrapFactor
Это работает для всех заказов, но неверен мне нужно разделить на миллион. Как я могу заставить это работать? Благодаря!
Это также дает мне разделить на ноль
((P.RealisedConsumption/((NULLIF(PO.ActualQty, 0) * NULLIF(P.QuantityPO, 0))/1000000)) - 1) * 100 AS FibreScrapFactor
Почему было бы делить на 1 миллион бросать деление на 0 ошибку? Почему вы проверяете, является ли '10' нулевым? – Brandon
Если я правильно понял проблему, вам понадобится инструкция 'CASE' для замены« 0 »за любое значение, которое вы пытаетесь заменить. Или поместите предикат в предложение WHERE, чтобы пропустить строки, где определенные столбцы являются «нулями». – Brandon
Я не знаю ... я просто прочитал, что если вы получите это значение null, если на то, что вы разделили на ... это часть большого запроса, я не могу пропустить строки, где есть нулевые столбцы. – jhowe