powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Это глюк в результатах запроса?
5 сообщений из 5, страница 1 из 1
Это глюк в результатах запроса?
    #38931654
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро!
Пропала буква Д в колонке nskv3.
Собственно обсудите, если есть время.
Спасибо!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT a.nskv, ; 
       PADL(ALLTRIM(a.nskv), 6, '0'), ; 
       TYPE(a.nskv), ; 
       ALLTRIM(a.nskv), ; 
       IIF(TYPE(a.nskv)=='N', PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) as nskv3, ; 
       a.Gid/a.Dni as gid, ; 
       a.Zak/a.Dni as zak ; 
  FROM abdr a ; 
 WHERE a.Dat between dateFrom AND dateTo ; 
       AND ! a.Dni = 0 
...
Рейтинг: 0 / 0
Это глюк в результатах запроса?
    #38931711
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,

вас нисколько не смущает результат в третьей колонке, в той, где выводится результат TYPE(a.nskv)? Тот самый, который вы сравниваете с 'N' и на результате этого сравнения делаете разные преобразования для получения nskv3. Он сильно похож на 'N'?
...
Рейтинг: 0 / 0
Это глюк в результатах запроса?
    #38931732
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,

и еще, в дополнение, посмотрите длину поля nskv3. Наверняка она 5. И потому 6 занков в ней не помещаются и последний, 6 знак, обрезается. Если так, то вы наступили на одни из самых распространенных граблей - понадеялись, что фокс сам вычислит наибольший размер данных для этого поля. А он вычисляет этот размер по первому попавшемуся ему значению в этом поле. То есть косяк в том, что выражение IIF(TYPE(a.nskv)=='N', PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) в одно поле пытается поместить данные разного размера. Не надо так так делать, приводите все результаты к одному размеру.
...
Рейтинг: 0 / 0
Это глюк в результатах запроса?
    #38931806
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizovvadipok,

и еще, в дополнение, посмотрите длину поля nskv3. Наверняка она 5. И потому 6 занков в ней не помещаются и последний, 6 знак, обрезается. Если так, то вы наступили на одни из самых распространенных граблей - понадеялись, что фокс сам вычислит наибольший размер данных для этого поля. А он вычисляет этот размер по первому попавшемуся ему значению в этом поле. То есть косяк в том, что выражение IIF(TYPE(a.nskv)=='N', PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) в одно поле пытается поместить данные разного размера. Не надо так так делать, приводите все результаты к одному размеру.

Вот это правдоподобно, спасибо сейчас проверю.
...
Рейтинг: 0 / 0
Это глюк в результатах запроса?
    #38931811
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,

Код: sql
1.
IIF(TYPE(a.nskv)=='N', ' ' + PADL(ALLTRIM(a.nskv), 5, '0'), PADL(ALLTRIM(a.nskv), 6, '0')) as nskv3



Вот так корректно отработало, спасибо еще раз.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Это глюк в результатах запроса?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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