Мы выполняем следующий запрос postgres:
select
AT.id,
AT.goal,
SS.id,
SS.index,
SS.goal,
TK.id,
TK.index,
TK.label,
TK.actions,
TK.type,
TK.group,
TK.blind,
TK.dynamic
from
automations as SS,
automation_sets as AT,
tasks as TK
where
SS.automation_set = 321
AND SS.automation_set = AT.id
AND TK.automation = SS.id
order by
SS.index, TK.index
, который возвращает следующие данные: извлечение данных
Как использовать Postgres xml функции для агрегирования данных на различных XML уровнях, являющихся первым уровнем AT.ID + AT.goal и вторым уровнем SS.ID + SS.goal?
Любая помощь будет признательна. Большое спасибо
РЕДАКТИРОВАТЬ - Нам удалось получить информацию, которую мы хотим, но у нас все еще есть одна проблема ... Использовано SQL:
SELECT XMLELEMENT(name automation_set,
XMLATTRIBUTES(ASET_ID as id),
XMLAGG(xml_task_group))
FROM (SELECT AT.id as ASET_ID,
XMLELEMENT(name automation,
XMLATTRIBUTES(SS.goal as id),
XMLAGG(XMLELEMENT(name task,
XMLATTRIBUTES(TK.id as task_id, TK.label, TK.actions, TK.type, TK.group, TK.blind, TK.dynamic, TK.index)))) as xml_task_group
from
automations as SS,
automation_sets as AT,
tasks as TK
where
SS.automation_set = 321
AND SS.automation_set = AT.id
AND TK.automation = SS.id
group by
AT.id, SS.id
order by
SS.index) t
group by t.ASET_ID
, но мы не можем получить порядок по TK.index, который является индексом задачи. Мы должны убедиться, что они в правильном порядке, и мы пока не можем это сделать ...
Любая помощь будет высоко оценена.
Приветствия