правильно написать запрос исключив деление на ноль

  • Автор темы Автор темы vanillavera
  • Дата начала Дата начала
V

vanillavera

Всем здравствуйте!
подскажите, пожалуйста, кто знает, как правильно написать запрос?
нужно вывести поле наценка, как результат от деления (продажи-продажи в договорных ценах)/продажи в договорных ценах
проблема в том, что договорной цены может и не быть
как написать, чтобы в случае возникновения ошибки деления на ноль в поле выводился ноль?
изначально , скажем запрос такой

SELECT access.SUMPROD, access.SUMDOG, (SUMPROD-SUMDOG)/SUMDOG
FROM access access

теоретически понимаю, что здесь нужно использовать is null или case

но как? мои познания в SQL скудны и поверхностны
 
SELECT access.SUMPROD, access.SUMDOG, (SUMPROD-SUMDOG)/SUMDOG
Это ж где такой дурной синтаксис придумали.. Вы там слово Limit или Where не пропустили?

Добавлено: пс. А что бы проверить на 0, проще if использовать.
 
Это ж где такой дурной синтаксис придумали.. Вы там слово Limit или Where не пропустили?

Добавлено: пс. А что бы проверить на 0, проще if использовать.


SELECT access.SUMPROD, access.SUMDOG,
case when isnull(SUMDOG;0)=0 then 0 else (SUMPROD-SUMDOG)/SUMDOG end
FROM access access


запрос пишу в MS Query
выдает
Не требовалось 'isnull' после списка столбцов в предложении SELECT
 
SELECT access.SUMPROD, access.SUMDOG,
case when Coalesce( SUMDOG,0)=0 then 0
else (SUMPROD-SUMDOG)/SUMDOG end
FROM access access

Где то так, мог опечататься но не ошибиться..
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab