powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с обработкой division by zero?!
2 сообщений из 2, страница 1 из 1
Помогите с обработкой division by zero?!
    #38880234
cYnIc.Nsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно сабж.
На stackoverflow нашёл такой вариант:
Код: plsql
1.
select request_count,response_count, (response_count*100) / (request_count+response_count) AS proportion from total_dummy_table;


Результат обработки:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select request_count,response_count, 
case 
    when 
    request_count+response_count = 0 then 0 
    else
(response_count*100) / (request_count+response_count) 
end
AS proportion 
from
total_dummy_table;



Не могу переделать свой запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT CAST((
SELECT CAST(COUNT(a.w_operation_id) AS real) 
FROM warehousing a, product b, producer c 
WHERE 
	a.pt_id = b.pt_id AND 
	b.pr_id = c.pr_id AND 
	c.pr_regularity='t' AND 
	a.w_date_out='2015-02-15'
)/(
SELECT CAST(COUNT(a.w_operation_id) AS real) 
FROM warehousing a, product b, producer c 
WHERE 
	a.pt_id = b.pt_id AND 
	b.pr_id = c.pr_id AND 
	a.w_date_out='2015-02-15') AS real
) AS result;


Разбивать на несколько не хотелось бы, т.к. параметры и результат обрабатываются php.
Всем откликнувшимся заранее спасибо!
...
Рейтинг: 0 / 0
Помогите с обработкой division by zero?!
    #38880791
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cYnIc.Nsk,
например так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SELECT case when t.v2=0 then 0 else t.v1/t.v2 end as rezult
FROM
(
    select 
    (
        SELECT CAST(COUNT(a.w_operation_id) AS real) 
        FROM warehousing a, product b, producer c 
        WHERE 
            a.pt_id = b.pt_id AND 
            b.pr_id = c.pr_id AND 
            c.pr_regularity='t' AND 
            a.w_date_out='2015-02-15'
	) as v1,
	(
        SELECT CAST(COUNT(a.w_operation_id) AS real) 
        FROM warehousing a, product b, producer c 
        WHERE 
            a.pt_id = b.pt_id AND 
            b.pr_id = c.pr_id AND 
            a.w_date_out='2015-02-15') AS real
	) as v2
) AS t
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с обработкой division by zero?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]