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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2009, 12:43   #1
xxxsas
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 79
Вопрос Можно ли сделать SUM данных таблицы с типом varchar?

Код:
QueryEDP->Close();
QueryEDP->SQL->Clear();
QueryEDP->SQL->Add("SELECT SUM(summ) as summ FROM dbo.doxod_za_period Dbo_doxod_za_period");
QueryEDP->SQL->Add("WHERE username = :username AND data_zap = :data_zap");
QueryEDP->Params->ParamByName("username")->Value = User_EDP->Caption;
QueryEDP->Params->ParamByName("data_zap")->Value = User_Date->Caption;
QueryEDP->Open();
EditSummDTP->Text = QueryEDP->FieldByName("summ")->AsString;
выскакивает ошибка (ругается на varchar)...

Когда тип полей был float все работало, но максимального значения float(8) мне мало, да и по некоторым другим признакам varchar мне предпочтительнее....

Насколько достоверна информация из google тип varchar надо перевести в float (на период вычислений), но я могу и ошибаться.

Вопрос: Как можно реализовать код?
xxxsas вне форума Ответить с цитированием
Старый 23.01.2009, 17:24   #2
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Самая большая глупость, использовать для числовых полей, строковое поле... Сделайте NUMERIC(15, 2)...
Rik вне форума Ответить с цитированием
Старый 23.01.2009, 18:50   #3
AlexanderPeshkov
Пользователь
 
Регистрация: 24.11.2008
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Rik Посмотреть сообщение
Самая большая глупость, использовать для числовых полей, строковое поле... Сделайте NUMERIC(15, 2)...
зачем катигорично говорить так, ты же не знаешь для чего это сделано, может он хранит там какой нибудь номер у которого первые символы 000 тогда твой числовой тип обрежет до нормального числа можно конечно при выводе ручками дописывать 00 в начало, но это не всегда удобно....
AlexanderPeshkov вне форума Ответить с цитированием
Старый 24.01.2009, 18:14   #4
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Для этого лучше всего создать представление, которое будет отображать информацию как надо, в противном случае, если хочется поизвращаться, пишите хранимую процедуру, и в ней считайте что хотите...
Rik вне форума Ответить с цитированием
Старый 24.01.2009, 22:42   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от AlexanderPeshkov Посмотреть сообщение
...может он хранит там какой нибудь номер у которого первые символы 000 тогда твой числовой тип обрежет до нормального числа можно конечно при выводе ручками дописывать 00 в начало, но это не всегда удобно....
вот только лисапед не надо каждый раз придумывать
для отображения всякой экзотики ничто не мешает создать какое-нить составное поле и по триггеру или что_там_доступно_на_серваке при вставке/апдейте обновлять содержимое поля

З.Ы.: параметры среды разработки тоже нужно учитывать (в смысле, сервак БД)
в оракле никаких проблем с хранением number, в Ибазе нужны танцы с бубнами и округлением
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
varchar to blob in phpmyadmin Alar SQL, базы данных 0 11.01.2009 07:14
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
Можно ли сделать скролбар в ячейке таблицы ? Droid JavaScript, Ajax 3 25.10.2008 16:53
Использование атрибутов count и sum Dianaa Помощь студентам 3 16.09.2008 22:51