Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2009, 20:19   #1
Vova20years
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 12
По умолчанию вывод агрегатной функции совместно м простым полем

Ребята, у меня вопрос- не могу вывести агрегатную функцию совместно с простым полем.....вот код:
Код:
adoquery1.close;
adoquery1.sql.clear;
adoquery1.SQL.add ('select count(*), №_ballona from ZAR_OG');
adoquery1.Open;
выводит ошибку, подскажите, что делаю не так???
Vova20years вне форума Ответить с цитированием
Старый 24.09.2009, 21:15   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Код:
group by №_ballona
soleil@mmc вне форума Ответить с цитированием
Старый 24.09.2009, 21:16   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

select count(*), field1 from tablex
group by field1
неагрегированые поля должны быть включены в список группировки
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.09.2009, 21:46   #4
Vova20years
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 12
По умолчанию

спасибо, но я хотел немного другой результат-через sql выводить кол-во по кол-ву записей в поле №_ballona

в таком виде-номеров баллонов у меня 5, вот я их и нумерую от 1 до 5....через технологию adotable я это сделал, как это сделать в sql?
Vova20years вне форума Ответить с цитированием
Старый 25.09.2009, 09:08   #5
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Цитата:
Сообщение от Vova20years Посмотреть сообщение
спасибо, но я хотел немного другой результат-через sql выводить кол-во по кол-ву записей в поле №_ballona

в таком виде-номеров баллонов у меня 5, вот я их и нумерую от 1 до 5....через технологию adotable я это сделал, как это сделать в sql?
Создаешь

Надо ввести счетчик, Сount показывает количество записей.
какую базу используешь?
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 25.09.2009, 11:26   #6
Vova20years
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 12
По умолчанию

база в Access
я делаю таким кодом-не работает.....
№_poryadkoviy - это счетчик
Код:
adoquery1.SQL.add ('select count(№_ballona),Nazvanie_ceha,№_poryadkoviy from ZAR_OG');
adoquery1.SQL.add('group by №_poryadkoviy ');
Vova20years вне форума Ответить с цитированием
Старый 25.09.2009, 12:01   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вова, ну Вам же чётко и абсолютно правильно сказали:
Цитата:
Сообщение от evg_m
неагрегированые поля должны быть включены в список группировки
в Вашем случае надо в group by указать ОБА выводимых Вами поля:
Код:
group by Nazvanie_ceha,№_poryadkoviy
p.s. а вообще, я, например, так и не могу понять, какие у Вас данные и что, собственно, Вы в запросе хотите получить! ну, конечно, это не обязательно, главное, чтобы Вы понимали!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.09.2009, 12:31   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Vova20years Посмотреть сообщение
в таком виде-номеров баллонов у меня 5, вот я их и нумерую от 1 до 5....через технологию adotable я это сделал, как это сделать в sql?
в скл можно пронумеровать записи через rownum, rank/dense_rank и т.п., на крайняк через самописную ХП, в которой самому крутить счетчик для каждой записи в возвращаемом датасете
soleil@mmc вне форума Ответить с цитированием
Старый 25.09.2009, 15:27   #9
Vova20years
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 12
По умолчанию

у меня есть к примеру 3 поля:
№_poryadkoviy числовой
Tip_ogn текстовый
№_ballona числовой

я хочу чтобы поле "№_poryadkoviy" при добавлении записи увеличивалось на 1 а при удалении записи соответственно уменьшалось....
это должно быть сделано именно на языке sql...жду вашей помощи!!!
Vova20years вне форума Ответить с цитированием
Старый 25.09.2009, 15:50   #10
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

№_poryadkoviy - это что? типа псевдосиквенс что ли?
приведите примеры наборов данных для случаев:
1) до добавления записи
2) после добавления
3) после удаления

апд
а вообще-то, для акссеса, имхо подойдет только выполнение апдейта для вновь добавляемой записи типа
Код:
new.№_poryadkoviy = (select max(№_poryadkoviy) + 1 from your_table)
хотя это и полнейший гемор в принципе для многопользовательских бд
а если удалили не последнюю запись, то лопатить почти всю таблицу

Последний раз редактировалось soleil@mmc; 25.09.2009 в 15:59.
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод таблицы с данными функции gessi Фриланс 5 16.09.2009 17:06
ScrollBar совместно с Memo1 Rebel123 Компоненты Delphi 4 24.08.2009 00:04
Вывод функции в переменую DeadHead PHP 16 13.08.2009 22:52
Связывание TreeView и ListView совместно с Access evgenmil БД в Delphi 2 11.03.2009 19:36
Вывод массива из функции LeoN PHP 2 13.11.2008 13:57