У меня есть две таблицы: cross_section и layer.
У каждого сечения есть несколько слоев, которые в свою очередь имеют позицию и итоговый столбец.Позиции (целые числа) используются для упорядочения слоев каждого поперечного сечения, но не обязательно должны быть последовательными (например, 10, 20, 40).
Мне нужно расширить запрос до таблицы cross_section, чтобы включить сводкуслои каждого сечения (фиксированное число> 1), которые сохраняют порядок, определенный атрибутом позиции.
Большая часть SQL генерируется автоматически;Я могу только добавить в список выбора дополнительные элементы, содержащие подзапросы.Вот как выглядит автоматически сгенерированный SQL:
select cs.*, [first layer summary], [second layer summary]... from cross_section cs;
Я пробовал несколько разных подходов, но ни один из них не работал должным образом (возможно, это просто невозможно).
Мой текущий нерабочий статус выглядит следующим образом:
---------------generated------------------------------------------
select cs.*,
---------------partial statment for clumn one---------------------
(select summary
from (select summary, l.cs_id
from layer l order by layer_position)
where cross_section.id like cs_id and rownum=1) layer_summary_1,
---------------partial statment for clumn two---------------------
(select summary
from (select summary, l.cs_id
from layer l order by layer_position)
where cross_section.id like cs_id and rownum=2) layer_summary_2
---------------generated------------------------------------------
from cross_section cs;
В настоящий момент все, кроме первой позиции, возвращается как нулевое значение.
Редактировать: Пример вывода в соответствии с запросом:
CSID, Stuff from cross section, layer_summary_1, layer_summary_2
12345, ..., stuff (null)