Ах, круто @SethSpearman рад это слышать!

м sqlfiddle ...

http://sqlfiddle.com/#!6/b6587/6

Я получаю следующую ошибку ....

Заявление прекращено. Максимальная рекурсия 100 была исчерпана до завершения оператора.

Я понимаю, что должна быть «проверка завершения» в предложении where второго выбора CTE. Даже если вы раскомментируете предложение WHERE, я получаю ту же ошибку.

Я просто пытаюсь понять 1) зачем это вообще нужно ... после того, как каждая строка заказа имеет отношение к каждой строке клиента, и 2) поскольку требуется "проверка завершения", как бы выглядел этот пример, чтобы работай.

Кстати, вывод, который я хотел бы видеть для этого запроса, выглядит следующим образом.

1,'George', 'Patton','',''
1,'','','<some date>', 'tank'
1,'','','<some date>', 'plane'
2,'Lewie', 'Puller','',''
2,'','','<some date>', 'Rifle'
2,'','','<some date>', 'Hand Grenade'

Кстати, не стесняйтесь комментировать другие способы получения такого рода результата (без использования рекурсивного cte), но также без использования курсора или временной таблицы. Я хотел бы сделать это с помощью операции на основе множества.

РЕДАКТИРОВАТЬ

Для протокола, я знаю, что соединение будет работать, но у меня была причина спросить о рекурсии. Чтобы дать вам контекст, я работаю над набором результатов, который является файлом EXPORT. Каждая строка - это только один столбец с именем LINE. Кроме того, файл экспорта должен выводиться в порядке моего примера ... детали должны быть в строках заголовка, и этот шаблон должен повторять ... заголовок / подробности ... заголовок / подробности. Я думал, что, возможно, рекурсия может решить эту проблему. Но я знаю, что простое объединение может решить эту проблему слишком долго, пока я могу привести строки в правильном порядке ... header / detail ... header / detail, возможно, имея какой-то способ сделать столбец для сортировки, которая нумерует вывод в правильный путь.

Мой экспорт НЕ будет зависеть от вызывающего приложения для форматирования данных ... хранимая процедура должна отформатировать данные.

Ответы на вопрос(0)

Ваш ответ на вопрос