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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2010, 13:58   #1
Sneginka87
 
Регистрация: 21.02.2010
Сообщений: 8
По умолчанию Проблема с функцией SUM

Здравствуйте.
Помогите разобраться. Использую Delphi 7 и FireBird 2.1
В Query пишу запрос
"select nomer, sum (kol_sut), sum (summa) from razm
group by nomer;"
вывожу данные в DBGrid. В свойстве FieldName у колонок выбираю имя поля. Открываю запрос и в DBGrid во 2ой и 3ей колонке везде написано (BYTES).

Есть еще один Query запрос "select sum(summa) as sum_summa from usl_kl;"
вывожу в DBEdit - опять выводится (BYTES)
Что это значит и как исправить?
C другими агрегаnными функциями все норамльно работает, например если написать max или count.
Тип данных суммируемых полей у всех Integer, итоговая сумма не больше 1000, а выводит (BYTES).

Пробовала еще вот так
query - field - new field
name - пишу имя поля из запроса "sum_summa", потом где type он автоматически пишет bytes, я меняю на integer, открываю запрос вылазит ошибка type mismatch for field 'sum_summa' , epecting: integer actual: bytes

Еще пробовала написать так Edit1.text:= query1.Fields[0].AsVariant;
Тогда в зависимости от суммы вылазит какая нибудь буква или символ
Sneginka87 вне форума Ответить с цитированием
Старый 24.02.2010, 00:59   #2
MAX/2-2-0B
Новичок
Джуниор
 
Регистрация: 22.02.2010
Сообщений: 2
По умолчанию

В окне полей запроса (по запросу клик 2 раза) все поля добавлены? Плюс можно пробовать различные варианты записи, например через точку имя_таблицы.имя_поля. Вопрос не очень корректен.

Последний раз редактировалось MAX/2-2-0B; 24.02.2010 в 01:05. Причина: Есть такая
MAX/2-2-0B вне форума Ответить с цитированием
Старый 24.02.2010, 07:52   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

возможно ошибка в том что функция sum возвращает поле с именем sum, или как то так называется переименуйте эти поля, запрос будет выглядеть так:
Код:
select nomer, sum (kol_sut) as kol_sut, sum (summa) as summa from razm
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 24.02.2010, 19:47   #4
Sneginka87
 
Регистрация: 21.02.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Sparky Посмотреть сообщение
возможно ошибка в том что функция sum возвращает поле с именем sum, или как то так называется переименуйте эти поля, запрос будет выглядеть так:
Код:
select nomer, sum (kol_sut) as kol_sut, sum (summa) as summa from razm
попробовала этот запрос, ничего не поменялось.
Sneginka87 вне форума Ответить с цитированием
Старый 24.02.2010, 19:52   #5
Sneginka87
 
Регистрация: 21.02.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от MAX/2-2-0B Посмотреть сообщение
Вопрос не очень корректен.
у меня есть query с простым запросом "select sum(summa) as sum_summa from usl_kl" . Мне нужно посчитатать сумму значений поля summa из таблица usl_kl. Например там 2 записи и поле summa имеет значения 100 и 250, мне надо чтобы вывелась циферка 350, а вместо этого получаю слово (BYTES)
Sneginka87 вне форума Ответить с цитированием
Старый 24.02.2010, 19:56   #6
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

а не в программе, можешь проверить как работает сам запрос, какие данные он возвращает?

и может вместо query, попробовать использовать adoquery
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 25.02.2010, 22:55   #7
Sneginka87
 
Регистрация: 21.02.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
а не в программе, можешь проверить как работает сам запрос, какие данные он возвращает?
а где можно проверить?
Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
и может вместо query, попробовать использовать adoquery
Я в Delphi не очень разбираюсь, и не знаю как работать с компонентами ADO
Sneginka87 вне форума Ответить с цитированием
Старый 26.02.2010, 09:44   #8
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
а где можно проверить?
ну вообще-то с FireBird я не знакомился достаточно близко, но из всего что прочитал, должна быть программа isql вот с её помощью можно протестировать запрос.
вот документация: http://www.ibprovider.com/rus/docume.../firebird.html

Цитата:
в Delphi не очень разбираюсь, и не знаю как работать с компонентами ADO
в принципе ничего сложного нету если уже умеешь работать с обычными компонентами query, table....
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 27.02.2010, 02:34   #9
Sneginka87
 
Регистрация: 21.02.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
ну вообще-то с FireBird я не знакомился достаточно близко, но из всего что прочитал, должна быть программа isql вот с её помощью можно протестировать запрос.
проверила, запросы отлично работают, даже тот который с группировкой тоже все правильно показывает))) Как бы сделать чтоб в Delphi правильно отображалось
Завтра с ADO компонентами попробую разобраться, хотя мне кажется с query ведь тоже должно работать
Sneginka87 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Проблема с функцией. malinoff Помощь студентам 1 08.01.2010 17:00
Проблема с функцией imagecreatefromjpeg() Linel PHP 3 23.10.2009 14:42
проблема с рекурсивной функцией world12_tk Помощь студентам 2 04.03.2009 20:57
проблема с функцией atoi Darw1n Общие вопросы C/C++ 2 08.10.2008 23:21