![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Гость_Vasya |
|
|||
Unregistered |
Привет!
Есть запрос типа: select Sum(count) from Table where _name='fedor' и в случае, если fedor-a там не окажется, надо вернуть 0(ноль). Как это реализовать? Спасибо! |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
"count" - у вас это название поля? Если да, то добавить ещё одну запись вида
NullField 0 и квери переделать: select Sum(count) from Table where _name='fedor' or _name='NullField' -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
кгхм. может я чего не врубаюсь. сумма то нафиха? почему не написать
select Count (*) where _name = 'fedor'? -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
З.Ы.
а count в качестве имени поля - это теперь так модно? ![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Видимо да, я тоже смотрел на эту кверю несколько офигевши, пока до меня не начало доходить, что по-видимому "count" это название поля... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
А вы не задумывались, что может требуется опредилить сумму количеств записей, где _name='fedor', правда в этом случае запрос просто элементарный.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
2 Cashey:
Count (*) всегда вернёт одно число. понимаешь? не набор данных в десять строк, а всего одно число одной строкой. я боюсь тебя удивить, но сумма этого числа и будет равна этому числу. вот если бы он делал группировку, тогда да, но по запросу я этого нифига не наблюдаю. Это сообщение отредактировал(а) x77 - 29.9.2003, 09:51 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Cashey |
|
||||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Прошу прощения я тут вообще фигню написал, даже стыдно, что кто-то успел прочитать. Да удалять уже поздно. Все забудьте ![]() Если count - это название поля, то проблема может быть в том, что select sum() в случае если нет записей удовлетворяющих условию вернет пустоту (не ноль, не false, а пустоту) и ничего с этим не поделаешь, поэтому приходится использовать простейший скрипт. На Фоксе он выглятет так:
и если федора там нет то a[1] = 0. А если все-таки нужна сумма количеств записей то тогда так:
Это сообщение отредактировал(а) Cashey - 29.9.2003, 11:04 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||||
|
|||||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
знать бы ещё, что у него за субд, далеко не всt умеют работать с массивами и использовать анонимные блоки. если проблема только с именем, то это можно обойти:
Это сообщение отредактировал(а) x77 - 29.9.2003, 10:57 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Интересно, а на какой субд пройдет этот код, на мне известных он может выглядет только в такой редакции
Вопрос то в другом count это имя поля или неумелая попытка вставить ф-цию count. Соответсвенно и задачи меняются. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
m@kxus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 20.2.2003 Где: Estonia Репутация: нет Всего: 2 |
Oracle: если count - название поля, то select nvl(sum(count),0) from from Table where _name='fedor' вернёт 0, даже если фёдора нет
|
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
2 Cashey:
на Interbase и MSSQL пройдёт, на oracle - не помню. под рукой его нет, так что врать не буду. для BDE это вообще стандартный синтаксис. мне кажется, у него есть как минимум два поля: _name, в котором хранятся имена, и count, в котором храниться кол-во этих имён. требуется посчитать сумму колличеств определённого имени. а вообще, пора бы уже и автора послушать ![]() Это сообщение отредактировал(а) x77 - 29.9.2003, 11:30 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Вот как раз в BDE он и не пройдет. Посмотри внимательно
Хотя это все фигня, я просто к тому, что язык (SQL) он вроде бы один, а его диалекты разнятся дай боже. Из-за этого тяжело предложить код который можно просто скопировать и использовать, короче
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
почему не пройдёт? пройдёт.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Cashey |
|
||||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Запустил в SQL Explorer (Delphi) такой код
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |