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

Вниз

SQL запрос   Найти похожие ветки 

 
Bizon's ©   (2004-06-24 00:00) [0]

Hi All!!
Есть запрос
select a.*,
(select sum(b.summ) from b where a = b)
from a


Второй селект (select sum(b.summ) from b where a = b) возвращает null если в таблице b нет записей.

Как можно сделать чтобы селект возвращал 0, а не null?


 
jack128 ©   (2004-06-24 00:13) [1]

для IB6 использовать UDF,
для FB1.5 попробуй COALESCE(select sum(b.summ) from b where a = b), 0) может и заработает, но наврятли ;-)


 
Жук ©   (2004-06-24 08:35) [2]

select a.*, sum(b.sum)
from a left join b on a.field=b.field
group by a.*


 
Johnmen ©   (2004-06-24 09:06) [3]

>Жук ©  

Это не поможет...

>Bizon"s ©

Для IB6.0 приемлемого/негромоздкого решения нет.


 
Курдль ©   (2004-06-24 09:09) [4]

А в IB нет ISNULL?


 
Johnmen ©   (2004-06-24 09:22) [5]

Есть. Только IS NULL
:)))


 
Жук ©   (2004-06-24 09:31) [6]


> Johnmen ©   (24.06.04 09:06) [3]

Просто намёк, что в сторону группировки надо смотреть...


 
Курдль ©   (2004-06-24 09:36) [7]


> Johnmen ©   (24.06.04 09:22) [5]
> Есть. Только IS NULL


Плохо... а то в Sybase есть
ISNULL function [Data type conversion]
Returns the first non-NULL expression in the parameter list.

А в Оракле есть NVL...
Неужели в IB нет аналога?


 
Johnmen ©   (2004-06-24 10:05) [8]

В IB6.0 встроенной нет.


 
Соловьев ©   (2004-06-24 10:07) [9]


> Как можно сделать чтобы селект возвращал 0, а не null?

зачем?


 
Bizon's ©   (2004-06-24 10:52) [10]


> зачем?

Чтобы в гриде не было пустой строки, а также для дальнейших операций с числами жедательно чтобы был 0.


 
Sandman25 ©   (2004-06-24 10:54) [11]

>Чтобы в гриде не было пустой строки

OnGetText

>а также для дальнейших операций с числами

if MyField.IsNull then
 V := 0
else
 V := MyField.Value


 
Johnmen ©   (2004-06-24 10:56) [12]

V := MyField.AsInteger;
:)


 
Sandman25 ©   (2004-06-24 10:58) [13]

[12] Johnmen ©   (24.06.04 10:56)

Точно. Мне обычно такое использовать не приходится, слава другим СУБД :)


 
Эдик   (2004-06-24 12:17) [14]

а если if применит?


 
Bizon's ©   (2004-06-24 13:29) [15]

С гридом понятно, но тогда как выполнить запрос

select a.*,
100-(select sum(b.summ) from b where a = b)
from a

Если от числа отнять null то возвращает null, а надо число = 100.
Как быть?


 
Соловьев ©   (2004-06-24 13:31) [16]


> [15] Bizon"s ©   (24.06.04 13:29)

используй ХП


 
Курдль ©   (2004-06-24 13:38) [17]


> Соловьев ©   (24.06.04 13:31) [16]
> используй ХП

А что это изменит??? Зачем советовать человеку невесть что???
IB понимает условные операторы в SQL?


 
Johnmen ©   (2004-06-24 13:43) [18]

>Как быть?

1. Перейти на версию/клон IB, кот. поддерживает необходимые фичи.
2. "Громоздкий". Соловьев ©   (24.06.04 13:31) [16]


 
Соловьев ©   (2004-06-24 13:44) [19]


> IB понимает условные операторы в SQL?

Что ты имеешь ввиду под SQL? Select?
В хранимых процедурах тоже, кстати, SQL.
Эту проблему(сабж) можно решить в IB(не в FireBird) только 2-я способами
1. [1]
2. хранимая процедура.

Если бы это был ФБ 1.5 - то там можно и в операторе SELECT без UDF решить.


 
Соловьев ©   (2004-06-24 13:44) [20]


> 2. "Громоздкий". Соловьев ©   (24.06.04 13:31) [16]

согласен, но можно же без UDF:)


 
Курдль ©   (2004-06-24 13:50) [21]


> Соловьев ©   (24.06.04 13:44) [19]
> Что ты имеешь ввиду под SQL? Select?

Я понимаю Structured Query Lanquage. А что?
Если можно сделать в скрипте, то зачем рожать ХП?


 
Соловьев ©   (2004-06-24 13:53) [22]


> Если можно сделать в скрипте, то зачем рожать ХП?

что такое скрипт? :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.192 c
9-1080636166
Goida
2004-03-30 12:42
2004.07.18
Как показать скорость?


3-1087726334
denis24
2004-06-20 14:12
2004.07.18
ка можно двигать колонки в DBgrid?


14-1088176987
Axis_of_Evil
2004-06-25 19:23
2004.07.18
написание прошивок для Nokia или Samsung


4-1086351014
fishca
2004-06-04 16:10
2004.07.18
Файлы открытые процессом


6-1084968516
_un_kloun_
2004-05-19 16:08
2004.07.18
Как скачать из Интернета файл?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский