|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема с функцией SUM
Здравствуйте.
Помогите разобраться. Использую Delphi 7 и InterBase 6. В Query пишу запрос "select nomer, sum (kol_sut), sum (summa) from razm group by nomer;" вывожу данные в DBGrid. В свойстве FieldName у колонок выбираю имя поля. Открываю запрос и в DBGrid во 2ой и 3ей колонке везде написано (BYTES). во втором Query запрос "select sum(summa) from usl_kl;" вывожу в DBEdit - опять выводится (BYTES) Что это значит и как исправить? C другими агрегаnными функциями все норамльно работает, например если написать max или count. |
#2
|
|||
|
|||
Вероятно, на выходе получается какое-нить неудобоваримое число. Попробуй ограничить для проверки выборку и посмотреть - если сумируется пара-тройка записей нормальное ли число выводится.
|
#3
|
|||
|
|||
select sum(summa) from usl_kl
в таблице usl_kl итак всего 2 записи. значения поля summa 100 и 250, т.е. сумма всего 350. Тип данных Integer. выводит (BYTES) |
#4
|
|||
|
|||
Попробуй у квери или у грида создать колонку нужного типа принудительно. Может оно просто тип путает.
И еще посмотри какой диалект стоит. Только сегодня "схватил" прикольную ошибку. Стоит тип данных столбца DATE. При запуске программы вылетает ошибка, что такой тип данных не поддерживается диалектом 1. Пока понял что за ошибка - замучился. А все дело оказалось в том, что по умолчанию у FIB'а стоить диалект 1, хотя сервер поддерживает диалект 3, на котором база и сделана. Поменял диалект - и все прекрасно заработало... |
#5
|
|||
|
|||
Цитата:
я не знаю как это делается. Предположила что так query - field - new field name - пишу имя поля из запроса, потом где type он автоматически пишет bytes, я меняю на integer, field type оставляю data. потом в выбираю в поле в dbgrid. открываю запрос вылазит ошибка type mismatch for field 'sum_summa' , epecting: integer actual: bytes Цитата:
|