Текущий архив: 2003.11.13;
Скачать: CL | DM;
Внизфункция Sum в SQL Найти похожие ветки
← →
Брат (2003-10-23 11:24) [0]Доброе утро! Как мне сдулать чтобы Sum возвращало NULL вместо 0?
Заранее спасибо :)
← →
Reindeer Moss Eater (2003-10-23 11:28) [1]Select null from table
← →
Брат (2003-10-23 11:31) [2]
> Reindeer Moss Eater ©
чтобы если при суммировании получается цифра отличная от нуля - то возвращается эта цифра, а если ноль, то возвращается NULL...
← →
Reindeer Moss Eater (2003-10-23 11:33) [3]Обычно хотят обратного.
IIF или обработка на клиенте
← →
Zacho (2003-10-23 11:34) [4]А зачем ???
А вообще - в IB6.x - хранимой процедурой, а в Yaffil или FB 1.5 можно и прямо в запросе.
← →
Плохиш_ (2003-10-23 11:34) [5]
> Брат © (23.10.03 11:24)
> Доброе утро! Как мне сдулать чтобы Sum возвращало NULL вместо
> 0?
> Заранее спасибо :)
Я балдею, одному надо 0 вместо null, другому null вместо нуля.
:-)))
← →
Брат (2003-10-23 11:36) [6]
> Reindeer Moss Eater © (23.10.03 11:33) [3]
> Обычно хотят обратного.
>
> IIF или обработка на клиенте
я пробовал IIF - он мне выдает ошибку что не знает что такое NULL. Вот так я делаю:
iif(sum(M1),null,sum(M1))
← →
Polevi (2003-10-23 11:37) [7]isNull ?
← →
Zacho (2003-10-23 11:39) [8]
> Брат © (23.10.03 11:36) [6]
Так все-таки, сервер у тебя какой ? IB ? Yaffil ? FB ?
← →
Брат (2003-10-23 11:39) [9]
> Я балдею, одному надо 0 вместо null, другому null вместо
> нуля.
чтобы сделать 0 вместо NULL, это просто есть функция Z в RFUNC... а вот наоборот....
← →
Брат (2003-10-23 11:40) [10]
> Zacho
IB
← →
Reindeer Moss Eater (2003-10-23 11:41) [11]А смысл и польза какая?
← →
Sergey13 (2003-10-23 11:44) [12]Так ИМХО, по умолчанию, если ничего не делать, то и возвратится NULL.
← →
Zacho (2003-10-23 11:45) [13]
> Брат © (23.10.03 11:40) [10]
Нету в IB IIF. Так что пиши ХП.
И все равно не понимаю, зачем из 0 делать NULL ?
← →
Брат (2003-10-23 11:48) [14]
> А смысл и польза какая?
Я использую отчеты PRReport, и мне надо чтобы там вместо нулей было ничего. Если в поле стоит NULL, то отчет в ячейке ничего не показывает, а если стоит 0, то он его показывает... Я давно мучаюсь с этими отчетами - никак не могу добиться этого...
← →
ZrenBy (2003-10-23 11:50) [15]>>И все равно не понимаю, зачем из 0 делать NULL ?
Ну например, случай - деление на ноль
select RES = Field1 / nullif(Field2,0)
при Field2=0 вернет null, а не будет грязно ругаться
← →
Брат (2003-10-23 11:50) [16]
> Zacho
> Нету в IB IIF
стандартной нету, но если установить библиотеку функций RFUNC, то появится
← →
Reindeer Moss Eater (2003-10-23 11:50) [17]А в приложении (отчете) не обработать эту ситуацию?
← →
Sergey13 (2003-10-23 11:50) [18]2Брат
Или у тебя в поле нет NULLей, а ты хочешь их иметь? Занятно. 8-)
← →
Sandman25 (2003-10-23 11:52) [19][14] Брат © (23.10.03 11:48)
У меня то же самое (PReport и выводится 0 для пустого Dataset), только вместо Sum у меня Count стоит. Ничего страшного в этом не вижу - наоборот пользователю будет виднее, что данных 0. Если захочет распечатать, пускай печатает :)
← →
Брат (2003-10-23 11:52) [20]
> Reindeer Moss Eater © (23.10.03 11:50) [17]
> А в приложении (отчете) не обработать эту ситуацию?
мучился я уже с этим - пока не получается...
хочу это сделать с помощью SQL...
> Sergey13 © (23.10.03 11:50) [18]
> 2Брат
> Или у тебя в поле нет NULLей, а ты хочешь их иметь? Занятно.
> 8-)
У меня в поле нету значений NULL, но есть значения 0...
← →
Danilka (2003-10-23 11:53) [21]гы-гы-гы.
скажу чего-нибудь в тему, чтобы не прибили:
Кстати, надо делать не пустое поле, а ставить черточку, так правильнее, иначе потом можно туда чего-нибудь дописать :))
← →
Zacho (2003-10-23 11:55) [22]2 Брат: Обычно такие вещи делаются непосредственно в отчете, все нормальные генераторы отчетов это позволяют. И уж в крайнем случае есть TField.OnGetText, в к-ром можно сделать все что угодно. Так что не мучай сервер, а сделай в приложении.
← →
Sergey13 (2003-10-23 11:55) [23]Не юзал PReport, но разве нельзя сделать это поле не полем запроса, а просто лабелью и присваивать ей значение перед печатью бенда (он вроде бендовый? или я путаю?). Или просто подавлять печать поля при 0?
← →
Брат (2003-10-23 11:57) [24]
> Sergey13 © (23.10.03 11:55) [23]
> Не юзал PReport, но разве нельзя сделать это поле не полем
> запроса, а просто лабелью и присваивать ей значение перед
> печатью бенда (он вроде бендовый? или я путаю?). Или просто
> подавлять печать поля при 0?
очень долго - у меня штук 20 подобных отчетов... Проще сделать так как я говорю - изменить нули на NULL
← →
Sergey13 (2003-10-23 11:58) [25]Ну-ну.
← →
Val (2003-10-23 12:06) [26]>Брат © (23.10.03 11:31) [2]
это неправильно, если вы получаете в результате суммирования 0, то нужно отображать именно 0.
← →
Брат (2003-10-23 12:07) [27]
> ZrenBy © (23.10.03 11:50) [15]
> select RES = Field1 / nullif(Field2,0)
> при Field2=0 вернет null, а не будет грязно ругаться
а где взять эту функцию?
← →
Брат (2003-10-23 12:09) [28]
> Val © (23.10.03 12:06) [26]
> >Брат © (23.10.03 11:31) [2]
> это неправильно, если вы получаете в результате суммирования
> 0, то нужно отображать именно 0.
а почему неправильно? кому как нравиться... зачем отображать ничего не значащие нули?
← →
Zacho (2003-10-23 12:11) [29]2 Брат © Если тебе уж так упорно не хочется делать в приложении - то напиши вместо запроса ХП.
> Брат © (23.10.03 12:07) [27]
> а где взять эту функцию?
В FB 1.5, например, есть :) А в Yaffil есть нормальный IIF :)
← →
Брат (2003-10-23 12:16) [30]
> 2 Zacho © (23.10.03 12:11) [29]
> В FB 1.5, например, есть :) А в Yaffil есть нормальный IIF
> :)
а в интербэйс мона её загнать? или есть ли версия для IB?
← →
Zacho (2003-10-23 12:19) [31]
> Брат © (23.10.03 12:16) [30]
>
> а в интербэйс мона её загнать?
Что значит "загнать" ?? Это функции SQL, а не UDF. Поставь вместо IB Yaffil или FB 1.5 и наслаждайся. Или пиши ХП. Или все-таки делай в приложении, например с помощью TField.OnGetText
← →
kaif (2003-10-23 14:45) [32]Лучшее решение на мой взгляд:
Zacho © (23.10.03 11:55) [22]
2 Брат: Обычно такие вещи делаются непосредственно в отчете, все нормальные генераторы отчетов это позволяют. И уж в крайнем случае есть TField.OnGetText, в к-ром можно сделать все что угодно. Так что не мучай сервер, а сделай в приложении.
В общем, на клиенте надо это делать. А если завтра заказчик захочет, чтобы вместо пустоты там тире отображались? Опять на сервер полезешь?
Страницы: 1 вся ветка
Текущий архив: 2003.11.13;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.034 c