Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SELECT / 3 сообщений из 3, страница 1 из 1
24.12.2003, 20:40
    #32362580
Venera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT
Извините за глупый вопрос, но ответа нигде не смогла найти
пишу SELECT summa, nasch , iff(summa-nacsh>0, summa-nacsh, 0) as field1 FROM sums
и почему то в поле field1 выходят звездочки (хотя число и не большое(100000 например))
...
Рейтинг: 0 / 0
24.12.2003, 20:47
    #32362584
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT
Напиши так:

Код: plaintext
1.
2.
SELECT summa, nasch , ;
	iff(summa-nacsh> 0 , summa-nacsh, summa-summa) as field1 ;
FROM sums


Проблема здесь в том, что размерность полей в результате выборки определяется по результату выполнения функций на первых попавшихся записях. Скорее всего, первой записью попалась как раз запись у которой summa-nacsh<=0, т.е. field1 было рассчиатно как 0 и получило размерность N(1).

Соответсвенно при вычислении последующих значений получили переполнение разрядности. О чем и свидетельствуют звездочки.

Чтобы этого избежать, для числовых полей надо явно указывать разрядность либо так как это сделал я в примере (summa-summa), либо просто указав нужное количество нулей:

iff(summa-nacsh>0, summa-nacsh, 00000000.00)

Для функций с символьными полями необходимо всегда использовать добавление пробелов типа PADR(...,50)
...
Рейтинг: 0 / 0
24.12.2003, 20:51
    #32362587
Venera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT
Спасибо, Владимир!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SELECT / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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