![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
dbf и sql [D7, dBase, FoxPro]
Дем © (2004-07-01 17:14:00)Помогите решить такую проблему:
Необходимо брать из dbf базы значения и округлять их.
Пишу запрос
select round(sum) from table
но такой запрос вызывает ошибку.
bushmen (2004-07-01 17:47:00) [1]>с какой стати?
Со школьной скамьи
Соловьев (2004-07-01 17:34:00) [2]
> 0,50 должно округляться до 0
с какой стати?
Sandman25 (2004-07-01 17:34:00) [3][13] bushmen © (01.07.04 17:33)
+ 0.4999999 :)
bushmen (2004-07-01 17:33:00) [4]>select cast("sum" + 0.5 as int) from table :)
Не получится. 0,50 должно округляться до 0, а если добавить 0,5, то результат будет 1 :))
Sandman25 (2004-07-01 17:28:00) [5]Если decimal(10,1), то capability not supported
Если numeric(10,1), то возвращает аргумент, то есть без округлений. Например, 0.123 :(
Sandman25 (2004-07-01 17:28:00) [6][8] bushmen © (01.07.04 17:24)
select cast("sum" + 0.5 as int) from table :)
bushmen (2004-07-01 17:26:00) [7]>о, а если
>select cast("sum" as numeric(10,1)) from table
А вот так попробуйте :))) У меня округляет :)
Sandman25 (2004-07-01 17:25:00) [8][7] Соловьев © (01.07.04 17:23)
Интересная мысль, надо попробовать.
bushmen (2004-07-01 17:24:00) [9]>select cast("sum" as integer) from table
У меня он отбрасывает дробную часть, а не округляет.
Соловьев (2004-07-01 17:23:00) [10]о, а если
select cast("sum" as numeric(10,1)) from table
Sandman25 (2004-07-01 17:22:00) [11]На dBase/foxPro - только на клиенте, то есть средствами Delphi, а не SQL.
См. LocalSQL.hlp - functions. Но round там нет.
Соловьев (2004-07-01 17:22:00) [12]
> Спасибо!, а как сделать округление до десятых?
используй АДО, или делай на клиенте
Соловьев (2004-07-01 17:21:00) [13]если АДО
select Round([sum];0) from table
Дем (2004-07-01 17:20:00) [14]При попытке Query выставить в Active, выходит сообщение об ошибке, что что-то не поддерживается.
to Sandman25:
Спасибо!, а как сделать округление до десятых?
я знаю можно так: select round(sum,1) from table
Но как я уже говорил, round почему-то не хочет работать :(
Sandman25 (2004-07-01 17:17:00) [15]select cast("sum" as integer) from table
Iconka (2004-07-01 17:16:00) [16]Ошибка приходит по вызову? Какая?