Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема странное поведение iif (число прочтений - 1213 )
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
странное поведение iif
14. Мая 2009 :: 05:47
Печать  
использую oledb
помогите, кто сталкивался, у меня уже не первый раз необъяснимое поведение iif

Код
Выбрать все
SELECT _1SBKTTL_vt.ACCID Счет
, _1SBKTTL_vt.SC0 Субконто1
, Cast(sd AS Numeric(15,2)) * iif(KIND = '1',1,0) СуммаОстаток1
, iif(KIND = '1',Cast(sd AS Numeric(15,2)),0) СуммаОстаток
, iif(KIND = '4',Cast(sd AS Numeric(15,2)),0) ВалютнаяСуммаОстаток

	FROM 1SACCS AS sq_vk
		LEFT JOIN 1SACCS AS _1SACCS_vt  ON (_1SACCS_vt.SCHKOD >= sq_vk.SCHKOD) AND (Left(_1SACCS_vt.SCHKOD, Len(sq_vk.SCHKOD)) = sq_vk.SCHKOD) AND (_1SACCS_vt.PLANID = '  MH') AND ((sq_vk.ID = '    9V   '))
		LEFT JOIN 1SBKTTL AS _1SBKTTL_vt  ON (_1SBKTTL_vt.ACCID = _1SACCS_vt.ID)
	WHERE (dtos(_1SBKTTL_vt.DATE) = '20090101')
		AND (_1SBKTTL_vt.KIND in ('1','4'))
 



в результате этого запроса СуммаОстаток - везде 0, а СуммаОстаток1 - выдает значения
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: странное поведение iif
Ответ #1 - 14. Мая 2009 :: 07:08
Печать  
if(KIND = '1',Cast(sd AS Numeric(15,2)),0) СуммаОстаток

на

if(KIND = '1',Cast(sd AS Numeric(15,2)),000000000000.00) СуммаОстаток

Fox форматирует столбец по первому встретившемуся значению в целях оптимизации.
если 0 - разрядность будет 1.0
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: странное поведение iif
Ответ #2 - 14. Мая 2009 :: 07:17
Печать  
прекрасно работает ) спасибо, kiruha
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать