Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как задать кол-во знаков в Select  [new]
alexx_fox
Member

Откуда:
Сообщений: 4
Доброго дня.
SELECTом встроенным в foxpro делаю sum от столбца с десятичными знаками если в первой записи есть десятичные (6767.788) sum нормально срабатывает а если нет (6767.000) то десятичные отбрасываются и результаты возвращает округленные.
Вопрос : можно ли жестко задать кол-во знаков в столбцах SELECTа?
6 мар 06, 10:15    [2420033]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
alexx_fox
Вопрос : можно ли жестко задать кол-во знаков в столбцах SELECTа?

Ответ: Да, можно. Способ зависит от Вашей версии FoxPro. Какая у Вас версия?
6 мар 06, 10:19    [2420043]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
alexx_fox
Member

Откуда:
Сообщений: 4
foxpro8
6 мар 06, 10:21    [2420051]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
Владимир СА
Member

Откуда:
Сообщений: 7882
Hi, alexx_fox !
А интересно тип поля какой???
Вот пример на VFP80, работает нормально. Может я что-то непонял???
CREATE CURSOR fff (p_sum N(12,3))
INSERT INTO fff (p_sum) VALUES (1.0)
INSERT INTO fff (p_sum) VALUES (15.123)
INSERT INTO fff (p_sum) VALUES (25.877)
SELECT SUM(p_sum) as p_sum FROM fff
6 мар 06, 10:23    [2420061]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
alexx_fox
foxpro8

Самый простой способ - поставить первый селект, в котором бы определялась длина полей:

select space(20) as name, 000000.000 as sum from yourtable where .f.
union all
select name, sum(yourcolumn) from yourtable where ...
group by 1...
Думаю, что Вы идею уловили.

Good luck!
6 мар 06, 10:25    [2420073]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
alexx_fox
Member

Откуда:
Сообщений: 4
select делается по полям
var С,10,0
n1 N,19,6
n2 N,19,6
по var - группируется N1 и N2 - SUM
6 мар 06, 10:27    [2420081]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
alexx_fox
Member

Откуда:
Сообщений: 4
Спасибо! Идея поймана, заломана! Иду препаприровать!
6 мар 06, 10:36    [2420120]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
Владимир СА
Member

Откуда:
Сообщений: 7882
alexx_fox
select делается по полям
var С,10,0
n1 N,19,6
n2 N,19,6
по var - группируется N1 и N2 - SUM

Вот тестовый пример на VFP80. У меня результат верный.
CREATE CURSOR fff (var C(10), n1 N(19,6), n2 N(19,6))
INSERT INTO fff (var , n1 , n2) VALUES ("c1", 1.0, 1.0)
INSERT INTO fff (var , n1 , n2) VALUES ("c1", 12.5, 13.65)
INSERT INTO fff (var , n1 , n2) VALUES ("c1", 123.123456, 25.654321)
INSERT INTO fff (var , n1 , n2) VALUES ("c2", 87, 56)
INSERT INTO fff (var , n1 , n2) VALUES ("c2", 987.852741, 369.963852)
SELECT var, SUM(n1) as n1, SUM(n2) as n2 FROM fff GROUP BY var
6 мар 06, 10:40    [2420134]     Ответить | Цитировать Сообщить модератору
 Re: Как задать кол-во знаков в Select  [new]
Crispy
Member

Откуда:
Сообщений: 523
Sergey Ch
alexx_fox
foxpro8

Самый простой способ - поставить первый селект, в котором бы определялась длина полей:

select space(20) as name, 000000.000 as sum from yourtable where .f.
union all
select name, sum(yourcolumn) from yourtable where ...
group by 1...
Думаю, что Вы идею уловили.

Good luck!


В принципе можно делать то же самое и без использования UNION, вот так к примеру:

select ;
  name, ;
  sum(yourcolumn)+000000.000 as sum ;
  from yourtable where ... ;
  group by 1...
6 мар 06, 11:10    [2420298]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить