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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2009, 14:13   #1
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию Сумма по полям в конце таблицы

Есть запрос sql
select Field1, COUNT(*) AS Field2 FROM Table where Table.Field_DATE between '01.01.2008' and '01.01.2009' GROUP BY Field1
есть результат, например
ррррр 32
пппп 58
аааа 5
Нужно в конце этой таблицы добавить строку

Итого 95

Как это сделать через запрос sql?
база на firebird
Subscriber вне форума Ответить с цитированием
Старый 04.03.2009, 15:19   #2
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

Можно попробовать Union использовать (Если firebird с ней работает)
Код:
select Field1, COUNT(*) AS Field2 FROM Table where Table.Field_DATE between '01.01.2008' and '01.01.2009' GROUP BY Field1
Union
select 'итого' as Field1, COUNT(*) AS Field2 FROM Table where Table.Field_DATE between '01.01.2008' and '01.01.2009'
knight вне форума Ответить с цитированием
Старый 04.03.2009, 15:59   #3
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

он работает с union, но как это реализовать? насколько я знаю union объединяет несколько запросов, а мне получается надо сначала сделать выборку по указанному выше запросу и после из результата этой выборки посчитать сумму по полям и выдать результат в конце таблицы
Subscriber вне форума Ответить с цитированием
Старый 04.03.2009, 16:04   #4
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

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

но все равно не проходит, говорит тип данных неверный

Последний раз редактировалось Subscriber; 04.03.2009 в 16:12.
Subscriber вне форума Ответить с цитированием
Старый 04.03.2009, 18:26   #5
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

Хитрость union в том, что объединяемые запросы должны быть с одинаковым количеством полей и с одинаковыми типами полей... Возможно Field1 или Field2 не совпадают по типу, хотя вроде бы как я понял Field1 - текстовый, Field2 - число...
knight вне форума Ответить с цитированием
Старый 04.03.2009, 18:29   #6
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

Попробуй вот так
Код:
select Field1 as F1, COUNT(*) AS F2 FROM Table as T1 where Field_DATE between '01.01.2008' and '01.01.2009' GROUP BY Field1
Union
select 'итого' as F1, COUNT(*) AS F2 FROM Table T2 where Field_DATE between '01.01.2008' and '01.01.2009'
knight вне форума Ответить с цитированием
Старый 05.03.2009, 08:12   #7
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

есть, получилось. (кстати knight правильно понял Field1 текстовое, а Field2-число) вот схема запроса:
select Field1, COUNT(*) AS Field2 FROM Table where Field_DOC between '01.01.2008' and '01.01.2009'
GROUP BY Field1 union
select cast('Итого' as varchar(100)), COUNT(*) AS Field2 FROM Table where Field_DOC between '01.01.2008' and '01.01.2009'
правда результат второго запроса пока не в конце таблицы, но думаю с этим разберусь! ))
knight огромное спасибо, за участие и оперативность!!!
Subscriber вне форума Ответить с цитированием
Старый 05.03.2009, 08:38   #8
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

Рад был помочь
А в конец сортировкой надо как-то угнать ORDER BY в самом низу запроса
knight вне форума Ответить с цитированием
Старый 05.03.2009, 13:49   #9
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

да я так и зделал ))))) спасибо
Subscriber вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как нолики в конце убрать? и в чем ошибка? lubafffka Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2008 18:52
декомпелировал прогу, в конце убрал код, теперь обратно не компилируется benjaminfran Общие вопросы Delphi 2 19.02.2008 12:57
TStringGrid - изначально мы видим одну ячейку в конце должно быть столько сколько заполнили. Ensoph Компоненты Delphi 5 18.10.2007 22:24
Уникальность по 3 полям num8er БД в Delphi 3 09.10.2007 09:54
Фильтрация по нескольким полям! Askat БД в Delphi 1 14.06.2007 06:44