Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

функция 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.036 c
9-40764
scout
2003-04-17 20:33
2003.11.13
Стрельба в играх


1-41461
Vladislav
2003-10-28 15:52
2003.11.13
Как вставить картинку в RxRichText?


4-42228
DillerXX
2003-09-16 21:53
2003.11.13
Dll


3-41069
Alexus
2003-10-21 19:14
2003.11.13
Подскажите с какой стороны взяться...


3-40823
denmin
2003-10-22 10:35
2003.11.13
Можно ли создать локальные таблицы на машине?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский