Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как наложить условие на таблицу присоединяемую оператором Join ? (число прочтений - 2820 )
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Как наложить условие на таблицу присоединяемую оператором Join ?
09. Ноября 2012 :: 07:16
Печать  
Добрый день всем.
Имеется работающий запрос:
|      SELECT  
     |      СпрНоменклатура.ID as      [Товар $Справочник.Номенклатура],
     |      СпрНоменклатура.ParentID as      [Товар_Родитель $Справочник.Номенклатура],
     |   $СпрНоменклатура.Пикинг as [Пикинг $Справочник.ЯчейкиСклада],
     |      $ПоследнееЗначение.Номенклатура.АктуальностьТовара(СпрНоменклатура.ID,:ТекДата) as [Актуальность $Перечисление.Булево],
     |      $СпрНоменклатура.КонтролируемыйТовар as [Контролируемый $Перечисление.Булево],
     |      СпрНоменклатура.CODE as Код,
     |      $СпрНоменклатура.ABC as ABC,
     |      TS.Склад as [Склад $Справочник.МестаХранения],
     |      IsNull(#ВТ.OST, 0) Остаток
     |      FROM #ВТ2 as TS
     |      LEFT JOIN #ВТ on #ВТ.TOV=TS.Товар and #ВТ.SKL=TS.Склад
     |   inner join $Справочник.Номенклатура as СпрНоменклатура (nolock) on СпрНоменклатура.id = TS.Товар";

Необходимо наложить условие, чтобы в выборку попадали только те элементы справочника Номенклатура для которых Актуальность = Да И Контролируемый = Да. Оба реквизита имеют тип булево.
Как это можно сделать?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #1 - 09. Ноября 2012 :: 07:29
Печать  
Никак. В 7.7 нет типа булево

на счет условия:

Код
Выбрать все
.... on СпрНоменклатура.id = TS.Товар
and $СпрНоменклатура.Реквизит1 =...
and $СпрНоменклатура.Реквизит2 =...
 

  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #2 - 09. Ноября 2012 :: 07:41
Печать  
Извиняюсь, не тип Булево, конечно, тип - Перечисление.Булево, просто так назвали перечисление.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #3 - 09. Ноября 2012 :: 08:21
Печать  
на счет условия:

Код:
.... on СпрНоменклатура.id = TS.Товар
and $СпрНоменклатура.Реквизит1 =...
and $СпрНоменклатура.Реквизит2 =...

Огромное спасибо, это именно то, что мне надо было.
Сам че то не мог допереть, где условие ставить.
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #4 - 09. Ноября 2012 :: 08:49
Печать  
А как в этом условии использовать периодический реквизит?

Вот такое условие работает:
" $СпрНоменклатура.КонтролируемыйТовар = $Перечисление.Булево.Да"
А такое не работает:
" $ПоследнееЗначение.Номенклатура.АктуальностьТовара(СпрНоменклатура.ID,:ТекДата) = $Перечисление.Булево.Нет"
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #5 - 09. Ноября 2012 :: 08:52
Печать  
сперва засунуть
$ПоследнееЗначение.Номенклатура.АктуальностьТовара(СпрНоменклатура.ID,:ТекДата)

в селект и посмотреть, что хоть возвращает
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #6 - 09. Ноября 2012 :: 08:59
Печать  
Оно там засунуто, в самом первом сообщении выше эта строка есть.
В таблице в ячейке стоит "ИТ.Актуальность" и выдает для товаров либо Да либо Нет.
На форме стоит Элемент "ВыбАктуальность" и надо отобрать в соответствии с ним.
Лучше в запросе, чтобы потом строки не перебирать.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #7 - 09. Ноября 2012 :: 09:23
Печать  
Ну, тогда и в условии всё должно работать
  
Наверх
 
IP записан
 
Vlad7131
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 74
Зарегистрирован: 06. Октября 2012
Re: Как наложить условие на таблицу присоединяемую оператором Join ?
Ответ #8 - 09. Ноября 2012 :: 09:52
Печать  
Блин, точно работает.
Отвалилось не в запросе, а позже,т.к. в выборку ничего не попало,
среди выбранных товаров не оказалось таких где Актуальность=Нет
и дальше отчет свалился.
Спасибо, буду разбираться.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать