SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.10.2007 07:35:40

belenkov
Участник
Зарегистрирован: 22.10.2007
Сообщений: 5

sum(x)-sum(y) = null ???

Доброго времени суток!

При запросе

select sum(x)-sum(y) from xxxxx

положительный результат выводин ноормально, а вместо отрицательного - NULL

Как с этим бороться ?

Неактивен

 

#2 23.10.2007 10:35:07

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: sum(x)-sum(y) = null ???

Дело в том, что если одно из значение NULL, то и разность NULL.
Бороться так:

SELECT IFNULL(sum(x), 0) - IFNULL(sum(y), 0) from xxxxx

Неактивен

 

#3 23.10.2007 16:13:41

belenkov
Участник
Зарегистрирован: 22.10.2007
Сообщений: 5

Re: sum(x)-sum(y) = null ???

Спасибо, помогло

Неактивен

 

#4 23.10.2007 16:41:10

belenkov
Участник
Зарегистрирован: 22.10.2007
Сообщений: 5

Re: sum(x)-sum(y) = null ???

А еще как бы сделать, чтобы не выводились записи, где sum(x)-sum(x)=0

Приблизительно ..
SELECT IFNULL(sum(x), 0) - IFNULL(sum(y), 0) as ost from xxxxx where ost<>0

тока ругается .. на ost, так же как и на where (IFNULL(sum(x), 0) - IFNULL(sum(y), 0))=0

Неактивен

 

#5 23.10.2007 18:22:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: sum(x)-sum(y) = null ???

Замените WHERE на HAVING. Вы делаете обработку после группировки.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson