Необходимо получить таблицу данных, где в одной колонке находятся элементы различных справочников. Когда делаю объединение таблиц выборок Union All c требуемыми данными то типизируются элементы этой колонки по виду первого справочника и для второй выборки выходит: <объект не найден>.
Текст запроса:
|SELECT Ном.ID [Элемент $Справочник.Номенклатура]
| , Dat1.Dat День
| , IsNull(Sum(Выборка.КонОст),0) Остаток
| , 1 МинОстаток
| , case when Sum(Выборка.КонОст) is null
| then 1
| else 0 end Провалы
| , 0 Везде
| , 0 ПериодыПровалов
| , 0 КоличествоПровалов
| , 0 КоличествоПериодов
| , 1 Всего
|FROM $Справочник.Номенклатура AS Ном With (NOLOCK)
| Full Outer Join Dat_ As Dat1
| On 1=1
| Left OUTER JOIN
| (SELECT ОстаткиТМЦОстаткиОбороты.Номенклатура Номенк
| , ОстаткиТМЦОстаткиОбороты.Период Период
| , SUM(ОстаткиТМЦОстаткиОбороты.КоличествоКонечныйОстаток) КонОст
| FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата,
| :КонДата~,
| День,
| ДвиженияИГраницыПериода,,
| --(Номенклатура = :ВыбНоменклатура)
| (Номенклатура in (Select val from #СписокНоменклатуры))
| And (Склад = :ВыбСклад),
| Номенклатура,) AS ОстаткиТМЦОстаткиОбороты
| GROUP BY ОстаткиТМЦОстаткиОбороты.Номенклатура
| , ОстаткиТМЦОстаткиОбороты.Период) As Выборка
| On (Выборка.Номенк = Ном.Id) And (Dat1.Dat=Выборка.Период)
| Left outer join $Справочник.СлужебныйОбщий As СпрСлОбщ On СпрСлОбщ.ParentExt = Ном.Id
| And $СпрСлОбщ.Склад = :ВыбСклад
|WHERE (Ном.Id in (Select val from #СписокНоменклатуры))
| And ($Ном.Каталог = $ПустойИД)
| -- (Ном.ID = :ВыбНоменклатура)
|GROUP BY Ном.ID, Ном.Descr, Dat1.Dat, $Ном.МинОстаток, $СпрСлОбщ.НормаПодтоварки
|-- Order By Ном.Descr, Dat1.Dat
|Union All
|SELECT Каталоги.ID [Элемент $Справочник.Каталоги]
|-- , Ном.ID [Номенклатура $Справочник.Номенклатура]
| , Dat1.Dat День
| , IsNull(Sum(Выборка.КонОст),0) Остаток
| , 1 МинОстаток
| , case when Sum(Выборка.КонОст) is null
| then 1
| else 0 end Провалы
| , 0 Везде
| , 0 ПериодыПровалов
| , 0 КоличествоПровалов
| , 0 КоличествоПериодов
| , 1 Всего
|FROM $Справочник.каталоги As Каталоги
| Left Join $Справочник.Номенклатура AS Ном With (NOLOCK) on Каталоги.Id = $Ном.Каталог
| Full Outer Join Dat_ As Dat1
| On 1=1
| Left OUTER JOIN
| (SELECT ОстаткиТМЦОстаткиОбороты.Номенклатура Номенк
| , ОстаткиТМЦОстаткиОбороты.Период Период
| , SUM(ОстаткиТМЦОстаткиОбороты.КоличествоКонечныйОстаток) КонОст
| FROM $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата,
| :КонДата~,
| День,
| ДвиженияИГраницыПериода,,
| -- (Номенклатура = :ВыбНоменклатура)
| --(Номенклатура in (Select val from #СписокНоменклатуры))
| -- And
| (Склад = :ВыбСклад),
| Номенклатура,) AS ОстаткиТМЦОстаткиОбороты
| GROUP BY ОстаткиТМЦОстаткиОбороты.Номенклатура
| , ОстаткиТМЦОстаткиОбороты.Период) As Выборка
| On (Выборка.Номенк = Ном.Id) And (Dat1.Dat=Выборка.Период)
| Left outer join $Справочник.СлужебныйОбщий As СпрСлОбщ On СпрСлОбщ.ParentExt = Ном.Id
| And $СпрСлОбщ.Склад = :ВыбСклад
| WHERE (Ном.Id in (Select val from #СписокНоменклатуры))
|GROUP BY Каталоги.Id, Ном.ID, Ном.Descr, Dat1.Dat, $Ном.МинОстаток, $СпрСлОбщ.НормаПодтоварки