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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Использование подзапросов
05. Марта 2010 :: 08:15
Печать  
Где-то в документации, в разделе "Получение итогов в запросе"   попался мне момент, там где идет обращение к подзапросу.
По аналогии написал запрос:
Код
Выбрать все
ТекстЗапроса = "-- qryMaker:Отчет1.2009.11.12.11.40.20
		|SELECT Склады.ID [Склад $Справочник.Склады]
		|	, ($Ном.МинОстаток * $СлужебныйОбщий.НормаПодтоварки) Норма
		|   , Выборка.Количество  Остаток
		|FROM $Справочник.Номенклатура AS Ном With (NOLOCK)
		|	INNER JOIN $Справочник.СлужебныйОбщий AS СлужебныйОбщий With (NOLOCK) ON Ном.ID = СлужебныйОбщий.PARENTEXT
		|	FULL OUTER JOIN $Справочник.Склады AS Склады With (NOLOCK) ON $СлужебныйОбщий.Склад = Склады.ID
		|   FULL Outer Join ( SELECT ОстаткиТМЦОстатки.Склад [Склад $Справочник.Склады]
		|			   , Sum(ОстаткиТМЦОстатки.КоличествоОстаток) Количество
		|			   FROM $РегистрОстатки.ОстаткиТМЦ(,,
		|			   (Номенклатура = :ТекНоменклатура),
		|			   Склад,) AS ОстаткиТМЦОстатки
		|			   GROUP BY ОстаткиТМЦОстатки.Склад
		|			   -- ORDER BY ОстаткиТМЦОстатки.Склад
		|			  ) As Выборка On Склады.Id = Выборка.Склад
		|WHERE ($Склады.РозничныйСклад = 1)
		|	AND (Ном.ID = :ТекНоменклатура)
		| ORDER BY Склады.Descr
		|"; 



Выпадает ошибка:
тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
{C:\1SBASES\COPYS\USR36\ОСТАТОК МЕНЬШЕ НОРМЫ.ERT(50)}: State 42S22, native 207, message
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Склад'.
Подскажите, почему я не могу обратиться к полям таблицы, которую возвращает подзапрос? По отдельности оба запроса отлично выполняются...
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Использование подзапросов
Ответ #1 - 05. Марта 2010 :: 08:24
Печать  
т.к. в результате
Код
Выбрать все
ОстаткиТМЦОстатки.Склад [Склад $Справочник.Склады] 

колонка у тебя называется [Склад $Справочник.Склады] замени на
Код
Выбрать все
ОстаткиТМЦОстатки.Склад AS Склад 

выражение в квадратных скобка нужны лишь метапарсеру чтобы он выполнил преобразование к типам 1с перед возвращением результатов в 1с.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Использование подзапросов
Ответ #2 - 05. Марта 2010 :: 09:35
Печать  
Спасибо, novichek, Вы мне очень помогли!
Какие классные возможности теперь открываются передо мной!
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать