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

Код: 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
SELECT
    #32362587
Venera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Владимир!!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SELECT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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