Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Условие + ВТ Оборотов +Тип реквизита=строка (число прочтений - 1282 )
Plumbum
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 26. Октября 2007
Условие + ВТ Оборотов +Тип реквизита=строка
26. Октября 2007 :: 09:41
Печать  
Собственно столкнулся с тем что не хватает знаний по T-SQL.
Перекурив мануалы и перепробовав кучу разных возможностей решил спросить у знающих)

Собственно проблема заключается в следующем.
есть регистр оборотов:
Реквизиты (тип)
1) Фирма (справочник)
2) Товар (справочник)
3) Операция (строка длиной 15)
4) Тип операции (число длина 1)
Ну и ресурс - количество.

Возникла задача наложить на выборку условия по операциям (обороты по 2-м,3-м типам операций из 10)
как я не изваращался - не получается. пробовал устанавливать текстовый параметр и сравнивать с ним - не работает, пробовал создавать ВТ и соединять с ней - гдето чего то не знаю...

Код
Выбрать все
	СписокТоваров=СоздатьОбъект("СписокЗначений");
	ТЗТоваров.Выгрузить(СписокТоваров,,,"Товар");

	Запрос = СоздатьОбъект("ODBCRecordset");
	Запрос.РежимRPC(1);

	ТекстЗапроса = "
	|SELECT
	|  РегОбПрих.Фирма     as [Фирма $Справочник.Фирмы],
	|  РегОбПрих.Опер	as Опер,
	|  СпрН.ID		 as [Товар $Справочник.Товары],
	|  РегОбПрих.КоличествоОборот   as КоличествоПриход,
	|  РегОбПрих.ПрихСуммаОборот    as СуммаПриход
	|FROM
	|  $Справочник.Товары as СпрН
	//приходы по регистру оборотов
	|INNER JOIN
	|  $РегистрОбороты.Обороты(:ВыбНачДата,:ВыбДата~,,,";
	Если ВыбФирмы.РазмерСписка()<>0 Тогда
		ТекстЗапроса=ТекстЗапроса+"
		|(Фирма IN (SELECT Val FROM #Фирмы)) AND ";
		Запрос.УложитьСписокОбъектов(ВыбФирмы,"#Фирмы","Фирмы"); //условие на отобранные фирмы
	КонецЕсли;

	ТекстЗапроса=ТекстЗапроса+"
	|				  (ПрихРасх=0),(Фирма,Товар,Опер), (Количество,ПрихСумма)) as РегОбПрих ON РегОбПрих.Товар = СпрН.ID
	|WHERE
	|  СпрН.IsFolder=2
	|  And СпрН.ID IN (SELECT Val FROM #Товары)";

	Запрос.УложитьСписокОбъектов(СписокТоваров,"#Товары","Товары"); //условие на отобранные товары

	ТекстЗапроса=ТекстЗапроса+"
	|ORDER BY
	| СпрН.Descr";

	Запрос.УстановитьТекстовыйПараметр("ВыбДата",ДатаКонца);
	ДН=ДатаКонца-Глубина;
	Запрос.УстановитьТекстовыйПараметр("ВыбНачДата",ДН);

	ТЗОборотов = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);

 

  
Наверх
 
IP записан
 
Plumbum
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 26. Октября 2007
Re: Условие + ВТ Оборотов +Тип реквизита=строка
Ответ #1 - 26. Октября 2007 :: 10:01
Печать  
может не совсем корректно сформулировал....
вне запроса у меня отобраны значения по которым отобрать (4 строки по 15 символов, совпадающими с тем что получается в результате выполнения запроса, а теперь надо чтоб в результате выполнения запроса остались записи допустим с 2-мя типами операций)
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Условие + ВТ Оборотов +Тип реквизита=строка
Ответ #2 - 26. Октября 2007 :: 16:02
Печать  
Ну и где эти "операции" в запросе?
Вместо Уложить... попробуй
Oper in ('321654','654654','45454')
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать