Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Sql - запрос и размерность поля / 2 сообщений из 2, страница 1 из 1
20.05.2004, 15:44
    #32526487
svetlana_sr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql - запрос и размерность поля
Подскажите, кто знает.

В 7 фоксе формирую обычный результирующий запрос, группирую по полю, получаю итоговую сумму. В таблице из которой беру данны - размерность числового поля суммы 12,2. В результирующей таблице - 16,2.

SELECT Spr_sum.lich, Spr_sum.k_sdo, SUM(Spr_sum.summa) as summa,;
left( Spr_sum.rs,13) as rs, 00 as mes, 0000 as year ;
FROM spr_sum;
GROUP BY Spr_sum.lich, Spr_sum.k_sdo INTO table curSum


Почему так получается? Как избежать изменения размерности поля? В результирующем запросе максимальное число содержить 10,2 символов.
...
Рейтинг: 0 / 0
20.05.2004, 17:19
    #32526782
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sql - запрос и размерность поля
Все правильно.

Проблема в том, что размерность полей результата запроса определяется ДО выполнения собственно запроса. Но ведь заранее невозможно предсказать, какая получится размерность в результирующей сумме.

Предположим, у тебя есть поле размерностью N(1) и 10 записей со значением 1. Если проссумировать все 10 записей, то получим значение 10, т.е. размерность будет уже N(2).

В связи с этим, в FoxPro в агрегиррующих функциях просто берут размерность с некоторым "запасом".

Если размерность полей результирующего курсора имеет принципиальное значение, то попробуй так:

CREATE CURSOR maska (summa N(12,2))
SELECT summa FROM maska
UNION ALL
SELECT SUM(spr_sum.summa)
FROM spr_sum
GROUP BY Spr_sum.lich, Spr_sum.k_sdo

Или же после выполнения запроса, используя ALTER TABLE привести поля к нужной размерности.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Sql - запрос и размерность поля / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]