Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Из-за чего может не работать coalesce ? (число прочтений - 2850 )
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Из-за чего может не работать coalesce ?
07. Августа 2008 :: 05:06
Печать  
Есть такой запрос:

Код
Выбрать все
рс = СоздатьОбъект("ODBCRecordset");
рс.Отладка(1);
ТекстЗапроса = "-- qryMaker:Отчет1.2008.08.07.10.00.18
	|SELECT Заказ.IDDOC [ЗаказСсылка $Документ.Заказ]
	|	, $ЗаказСтроки.КтоВыполнил КтоВыполнил
	|	, $ЗаказСтроки.КтоВыполнилИд КтоВыполнилИд
	|	, coalesce($ЗаказСтроки.ПодрТ,$Заказ.Подразделение) [Подразделение2 $Справочник.Подразделения]
	|	, $ЗаказСтроки.ПодрТ as ПодрТ
	|	, $Заказ.Подразделение as Подр
	|FROM $ДокументСтроки.Заказ AS ЗаказСтроки With (NOLOCK)
	|	INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON ЗаказСтроки.IDDOC = Журнал.IDDOC
	|	INNER JOIN $Документ.Заказ AS Заказ With (NOLOCK) ON Заказ.IDDOC = ЗаказСтроки.IDDOC
	|WHERE ((Журнал.CLOSED & 1) = 1)
	|	AND (Журнал.DATE_TIME_IDDOC > :фНачало)
	|	AND (Журнал.DATE_TIME_IDDOC < :фКонец)
	|	AND ($Заказ.Подразделение = :фПодр)
	|";
рс.УстановитьТекстовыйПараметр("фНачало", фНачало);
рс.УстановитьТекстовыйПараметр("фКонец", фКонец);
рс.УстановитьТекстовыйПараметр("фПодр", фПодр);
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса); 



Реквизит Подразделение есть в табличной части и шапке. Тип один.  
Делаю coalesce, показывает только в том случае, если есть реквизит в табличной части.
Если в шапке - упорно не видит.

Может сталкивался кто?
  
Наверх
ICQ  
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #1 - 07. Августа 2008 :: 05:10
Печать  
Как в другой раздел перекинуть? Промахнулся, нужно в прямые запросы к БД
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #2 - 07. Августа 2008 :: 06:05
Печать  
coalesce здесь не в тему.
Код
Выбрать все
case when $ЗаказСтроки.ПодрТ = $ПустойИд then $Заказ.Подразделение else $ЗаказСтроки.ПодрТ end 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #3 - 07. Августа 2008 :: 06:16
Печать  
да, просто и красиво. И что сам не додумался ...

а coalesce считает $ПустойИд непустым значением чтоли?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #4 - 07. Августа 2008 :: 06:19
Печать  
vivm писал(а) 07. Августа 2008 :: 06:16:
а coalesce считает $ПустойИд непустым значением чтоли?

А ты считаешь иначе?  Ужас
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #5 - 07. Августа 2008 :: 06:19
Печать  
vivm писал(а) 07. Августа 2008 :: 06:16:
да, просто и красиво. И что сам не додумался ...

а coalesce считает $ПустойИд непустым значением чтоли?

Что ты понимаешь под пустым значением? Если null, то нет, $ПустойИД естесенно не null. Сделай Select $ПустойИД в 1СQA и будет понятно.
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #6 - 07. Августа 2008 :: 06:20
Печать  
vivm писал(а) 07. Августа 2008 :: 06:16:
а coalesce считает $ПустойИд непустым значением чтоли?


COALESCE (Transact-SQL)
Возвращает первое выражение из списка аргументов, не равное NULL.

$ПустойИд - это строка '     0   ' (это только для 1С - это типа NULL)

ЗЫ Опоздал с ответом Улыбка
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #7 - 07. Августа 2008 :: 06:22
Печать  
vivm писал(а) 07. Августа 2008 :: 06:16:
да, просто и красиво. И что сам не додумался ...

а coalesce считает $ПустойИд непустым значением чтоли?

$ПустойИд = '     0   ' ?  а пустое значение = null


пс :  во аншлаг какой Улыбка
  
Наверх
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Из-за чего может не работать coalesce ?
Ответ #8 - 07. Августа 2008 :: 06:22
Печать  
все понятно, ступил , спасибо всем
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать