|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.03.2009, 14:13 | #1 |
Пользователь
Регистрация: 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 |
04.03.2009, 15:19 | #2 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
Можно попробовать Union использовать (Если firebird с ней работает)
Код:
|
04.03.2009, 15:59 | #3 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
он работает с union, но как это реализовать? насколько я знаю union объединяет несколько запросов, а мне получается надо сначала сделать выборку по указанному выше запросу и после из результата этой выборки посчитать сумму по полям и выдать результат в конце таблицы
|
04.03.2009, 16:04 | #4 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
Сорри, поторопился ответить, незаметил код )))
но все равно не проходит, говорит тип данных неверный Последний раз редактировалось Subscriber; 04.03.2009 в 16:12. |
04.03.2009, 18:26 | #5 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
Хитрость union в том, что объединяемые запросы должны быть с одинаковым количеством полей и с одинаковыми типами полей... Возможно Field1 или Field2 не совпадают по типу, хотя вроде бы как я понял Field1 - текстовый, Field2 - число...
|
04.03.2009, 18:29 | #6 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
Попробуй вот так
Код:
|
05.03.2009, 08:12 | #7 |
Пользователь
Регистрация: 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 огромное спасибо, за участие и оперативность!!! |
05.03.2009, 08:38 | #8 |
Дон Кихот
Форумчанин
Регистрация: 17.01.2008
Сообщений: 130
|
Рад был помочь
А в конец сортировкой надо как-то угнать ORDER BY в самом низу запроса |
05.03.2009, 13:49 | #9 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
да я так и зделал ))))) спасибо
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как нолики в конце убрать? и в чем ошибка? | 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 |