Видимо понедельник был просто не мой день... Сегодня потратил часок, сделал как в ФАКе через пару строк и тильды в качестве разделителей, нормально заработало.
Такие задачи лучше всего решать динамически формируемыми запросами на стороне приложения, а не с помощью ХП в базе.
Могу показать пример на делфи, если интересно
Ессно все можно динамически, но чем больше динамики, тем дольше отлаживать... Спасибо за поддержку, но состряпать динамически запросец на дельфях я умею
я бы остановился на варианте с псевдо-временной таблицей...
Если б строк было бы много или была бы тенденция к росту, я бы тоже через временную таблицу сделал, но и так таблиц уже под сотню, плодить их просто так не хочется, тут и так все заработало.
Хотя, в принципе можно сделать одну такую псевдовременню таблицу на всю БД одну, ибо структра будет одинаковая для любых подобных выборок, вида
Врем_табл_для _перем_числа_параметров
(ИД_выборки int
ИД_выбираемой_таблицы int)
Как только пользователь навыделял в гриде несколько строк и нажал пипку "состряпать отчет", сгенерировать уникальный ИД_выборки , пройтись по букмаркам и наинсертить во врем таблицу список ключей, потом примерно так отбирать:
select bla_bla
from some_table
where id_some_table in (select ИД_выбираемой_таблицы from Врем_табл_для _перем_числа_параметров where ИД_выборки = :Текущая_выборка)
Это уже просто мысли вслух...