Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Подзапрос в прямом запросе (http://forums.kuban.ru/f1040/podzapros_v_pryamom_zaprose-7985069.html)

sulthoma 30.08.2016 12:36

Подзапрос в прямом запросе
 
Дамы и господа, прошу прощения за тупость, но никак не могу увидеть ошибку. Подскажите, плиз:

ТекстЗапроса = "
|SELECT
| Прв.[DATE_TIME_DOCID] as [ДатаПроводки $Дата],
| Прв.[ACCDTID] as [СчетДт $Счет.Основной],
| Прв.[DTSC0] as [СкДт1 $Справочник.ВидыСтрахования],
| Прв.[DTSC1] as [СкДт2 $Справочник.Контрагенты],
| Док.[IDDOC] as [СкДт3 $Документ],
| Жур.IDDocDef as СкДт3_вид,
| Жур.Date_Time_IDDoc as [ДатаДок $Дата],
| Прв.[SUM_] as Сумма,
| Прв.[CURSUM] as СуммаВал,
| РегистрДоки.Регистратор as Регистратор,
| $Док.Получатель as [Получ $Справочник.Контрагенты],
| $Док.Примечание as [Примечание $Строка]
| FROM _1SENTRY as Прв WITH(NOLOCK)
| left outer join $Документ.ЗаявлениеУбыточностиСтрах as Док WITH(NOLOCK) on Док.[IDDOC] = Прв.[DTSC2]
| left outer join _1SJourn as Жур ON Жур.[IDDOC] = Док.[IDDOC]
| left outer join (
| SELECT
| Прв1.[DATE_TIME_DOCID],
| Прв1.[DOCID],
| Жур1.[IDDOC] as [Регистратор $Документ],
| Жур1.[IDDocDef] as Регистратор_вид
| FROM _1SENTRY as Прв1 WITH(NOLOCK)
| left outer join _1SJourn as Жур1 ON Жур1.[IDDOC] = Прв1.[DOCID]
| WHERE ([ACTIVE] <> '*')
| and (Прв1.DATE_TIME_DOCID <= :КонДата~)
| and ((Прв1.[ACCDTID] = :Сч22_1_1) or (Прв1.[ACCDTID] = :Сч22_1_2))
| and (Прв1.[ACCKTID] = :Сч51 or Прв1.[ACCKTID] = :Сч68_1 or Прв1.[ACCKTID] = :Сч76_01 or
| Прв1.[ACCKTID] = :Сч78_1_1 or Прв1.[ACCKTID] = :Сч78_1_2 or Прв1.[ACCKTID] = :Сч76_5)
| ) as РегистрДоки on РегистрДоки.[DATE_TIME_DOCID] = Прв.[DATE_TIME_DOCID] and РегистрДоки.[DOCID] = Прв.[DOCID]
| WHERE ([ACTIVE] <> '*')
| and (Жур.IDDocDef = $ВидДокумента.ЗаявлениеУбыточностиСтрах)
| and (Прв.DATE_TIME_DOCID <= :КонДата~)
| and ((Прв.[ACCDTID] = :Сч22_1_1) or (Прв.[ACCDTID] = :Сч22_1_2))
| and (Прв.[ACCKTID] = :Сч51 or Прв.[ACCKTID] = :Сч68_1 or Прв.[ACCKTID] = :Сч76_01 or
| Прв.[ACCKTID] = :Сч78_1_1 or Прв.[ACCKTID] = :Сч78_1_2 or Прв.[ACCKTID] = :Сч76_5)
|";

Выдает: ...Invalid column name 'Регистратор'.

roma n 30.08.2016 13:15

Попробуй сказать прямо
Жур1.[IDDOC] as РегистраторИзЖурнала,

Возможно, слово зарезервировано

sulthoma 31.08.2016 16:47

Сорри, мне, как новичку, запретили постить на сутки - не мог ответить.
[quote=roma n;42819968]Возможно, слово зарезервировано [/quote]
Нет, не прошло. Коллеги подсказали, что структура в квадратных скобках во внешнем запросе выглядит не совсем как "Регистратор". То есть, действительно такой колонки нет.
Если типизацию в подзапросе убрать - колонка появляется. Но тогда типизировать нужно во внешнем запросе. А тогда и подзапрос не нужен. Получилось в результате:

|SELECT
| Док.[IDDOC] as [СкДт3 $Документ],
| Жур.IDDocDef as СкДт3_вид,
|...
| Прв.[DOCID] as [Регистратор $Документ],
| Жур1.IDDocDef as Регистратор_вид,
|...
| FROM _1SENTRY as Прв WITH(NOLOCK)
| left outer join $Документ.ЗаявлениеУбыточностиСтрах as Док WITH(NOLOCK) on Док.[IDDOC] = Прв.[DTSC2]
| left outer join _1SJourn as Жур ON Жур.[IDDOC] = Док.[IDDOC]
| left outer join _1SJourn as Жур1 ON Жур1.[IDDOC] = Прв.[DOCID]
|...
| WHERE
|...


Текущее время: 23:43. Часовой пояс GMT +3.