мне кажется, что если бы объекты были связаны не через "числовые атрибуты", а через стандартные горизонтальные связи, то это можно было бы сделать обычным отчетом. там есть возможность вытаскивать атрибут у объектов, связанных с объектом, который попал в отчет..
ну это так..

если запросом... готового у меня нет, да и сделать его не могу - не представляю пока, что там за структура данных, какие связи между объектами и логика...
но!
кажется, реально может помочь left join
у меня есть отчет с вот таким запросом (вырезал несущественные части):
Код: Выделить всё
select
obj.id as isobject_id
,obj.type_id
,obj.description
,(
select vs.value
from
lsdbo.attrib_value_view av1
,lsdbo.value_string_view vs
where
av1.object_id = obj.id
and
av1.attrib_id = 772823689700001
and
av1.value_id = vs.id
) as 'stage'
. . .
. . .
,select vd.value
from
lsdbo.attrib_value_view av1
,lsdbo.value_datetime_view vd
where
av1.object_id = obj.id
and
av1.attrib_id = 100000543100001
and
av1.value_id = vd.id
) as 'date_mark'
,obj_maps.map_id as map_id
,obj_maps.begin_date
,obj_maps.subject
,obj_maps.user_to_name
,obj_maps.created
from
lsdbo.object_reference_view obj -- первая таблица
left join
lsdbo.custom_view_obj_in_maps_v obj_maps -- вторая таблица
on
obj_maps.doc_id = obj.id
where
. . .
. . .
суть в том, что из первой таблицы вытаскиваются определенные объекты, но во второй таблице для ОДНОГО объекта может быть НЕСКОЛЬКО записей и надо все их показать.
поэтому использует left join (делал давно, по-другому вроде не получалось добиться того, чего хотел)
думаю, в вашем случае, Александр, можно попробовать сделать то же самое. нужно только определиться, какой делать join, левый или правый (это смотря какое число связанных записей есть в таблицах).
представить это все в одном запросе у меня не получается, но можно попробовать сделать свои виды, три штуки, для каждого типа объекта - свой вид, со своими колонками (атрибутами), а потом в запросе просто связать эти виды через определенные join по определенным числовым атрибутам (которые конечно должны быть в каждом виде...)
может, так получится?..