Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

функция Sum в SQL [D6, IB6.x]


Страницы:   1 2

Брат ©   (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 ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо