![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
функция Sum в SQL [D6, IB6.x]
Брат © (2003-10-23 11:24:00)
Доброе утро! Как мне сдулать чтобы Sum возвращало NULL вместо 0?
Заранее спасибо :)
kaif (2003-10-23 14:45:00) [1]
Лучшее решение на мой взгляд:
Zacho © (23.10.03 11:55) [22]
2 Брат: Обычно такие вещи делаются непосредственно в отчете, все нормальные генераторы отчетов это позволяют. И уж в крайнем случае есть TField.OnGetText, в к-ром можно сделать все что угодно. Так что не мучай сервер, а сделай в приложении.
В общем, на клиенте надо это делать. А если завтра заказчик захочет, чтобы вместо пустоты там тире отображались? Опять на сервер полезешь?
Zacho (2003-10-23 12:19:00) [2]
> Брат © (23.10.03 12:16) [30]
>
> а в интербэйс мона её загнать?
Что значит "загнать" ?? Это функции SQL, а не UDF. Поставь вместо IB Yaffil или FB 1.5 и наслаждайся. Или пиши ХП. Или все-таки делай в приложении, например с помощью TField.OnGetText
Брат (2003-10-23 12:16:00) [3]
> 2 Zacho © (23.10.03 12:11) [29]
> В FB 1.5, например, есть :) А в Yaffil есть нормальный IIF
> :)
а в интербэйс мона её загнать? или есть ли версия для IB?
Zacho (2003-10-23 12:11:00) [4]
2 Брат © Если тебе уж так упорно не хочется делать в приложении - то напиши вместо запроса ХП.
> Брат © (23.10.03 12:07) [27]
> а где взять эту функцию?
В FB 1.5, например, есть :) А в Yaffil есть нормальный IIF :)
Брат (2003-10-23 12:09:00) [5]
> Val © (23.10.03 12:06) [26]
> >Брат © (23.10.03 11:31) [2]
> это неправильно, если вы получаете в результате суммирования
> 0, то нужно отображать именно 0.
а почему неправильно? кому как нравиться... зачем отображать ничего не значащие нули?
Брат (2003-10-23 12:07:00) [6]
> ZrenBy © (23.10.03 11:50) [15]
> select RES = Field1 / nullif(Field2,0)
> при Field2=0 вернет null, а не будет грязно ругаться
а где взять эту функцию?
Val (2003-10-23 12:06:00) [7]
>Брат © (23.10.03 11:31) [2]
это неправильно, если вы получаете в результате суммирования 0, то нужно отображать именно 0.
Sergey13 (2003-10-23 11:58:00) [8]
Ну-ну.
Брат (2003-10-23 11:57:00) [9]
> Sergey13 © (23.10.03 11:55) [23]
> Не юзал PReport, но разве нельзя сделать это поле не полем
> запроса, а просто лабелью и присваивать ей значение перед
> печатью бенда (он вроде бендовый? или я путаю?). Или просто
> подавлять печать поля при 0?
очень долго - у меня штук 20 подобных отчетов... Проще сделать так как я говорю - изменить нули на NULL
Sergey13 (2003-10-23 11:55:00) [10]
Не юзал PReport, но разве нельзя сделать это поле не полем запроса, а просто лабелью и присваивать ей значение перед печатью бенда (он вроде бендовый? или я путаю?). Или просто подавлять печать поля при 0?
Zacho (2003-10-23 11:55:00) [11]
2 Брат: Обычно такие вещи делаются непосредственно в отчете, все нормальные генераторы отчетов это позволяют. И уж в крайнем случае есть TField.OnGetText, в к-ром можно сделать все что угодно. Так что не мучай сервер, а сделай в приложении.
Danilka (2003-10-23 11:53:00) [12]
гы-гы-гы.
скажу чего-нибудь в тему, чтобы не прибили:
Кстати, надо делать не пустое поле, а ставить черточку, так правильнее, иначе потом можно туда чего-нибудь дописать :))
Брат (2003-10-23 11:52:00) [13]
> Reindeer Moss Eater © (23.10.03 11:50) [17]
> А в приложении (отчете) не обработать эту ситуацию?
мучился я уже с этим - пока не получается...
хочу это сделать с помощью SQL...
> Sergey13 © (23.10.03 11:50) [18]
> 2Брат
> Или у тебя в поле нет NULLей, а ты хочешь их иметь? Занятно.
> 8-)
У меня в поле нету значений NULL, но есть значения 0...
Sandman25 (2003-10-23 11:52:00) [14]
[14] Брат © (23.10.03 11:48)
У меня то же самое (PReport и выводится 0 для пустого Dataset), только вместо Sum у меня Count стоит. Ничего страшного в этом не вижу - наоборот пользователю будет виднее, что данных 0. Если захочет распечатать, пускай печатает :)
Reindeer Moss Eater (2003-10-23 11:50:00) [15]
А в приложении (отчете) не обработать эту ситуацию?
Sergey13 (2003-10-23 11:50:00) [16]
2Брат
Или у тебя в поле нет NULLей, а ты хочешь их иметь? Занятно. 8-)
Брат (2003-10-23 11:50:00) [17]
> Zacho
> Нету в IB IIF
стандартной нету, но если установить библиотеку функций RFUNC, то появится
ZrenBy (2003-10-23 11:50:00) [18]
>>И все равно не понимаю, зачем из 0 делать NULL ?
Ну например, случай - деление на ноль
select RES = Field1 / nullif(Field2,0)
при Field2=0 вернет null, а не будет грязно ругаться
Брат (2003-10-23 11:48:00) [19]
> А смысл и польза какая?
Я использую отчеты PRReport, и мне надо чтобы там вместо нулей было ничего. Если в поле стоит NULL, то отчет в ячейке ничего не показывает, а если стоит 0, то он его показывает... Я давно мучаюсь с этими отчетами - никак не могу добиться этого...
Zacho (2003-10-23 11:45:00) [20]
> Брат © (23.10.03 11:40) [10]
Нету в IB IIF. Так что пиши ХП.
И все равно не понимаю, зачем из 0 делать NULL ?