В SQL Server 2008 у меня есть ситуация, когда мне нужно вернуть динамически сгенерированную таблицу, а столбцы также сгенерированы динамически.
Все в этом было сгенерировано запросами, так как я начал с одного идентификатора, затем я получил имена и типы столбцов, поэтому приведение.
Ниже приведен последний запрос, который вернет нужную мне таблицу в одной ситуации, но этот аналогичный запрос можно использовать для возврата нескольких таблиц.
В настоящее время это реализовано в C #, но я ожидаю, что это должно быть выполнимо в хранимой процедуре или функции, но я не уверен, как сделать несколько запросов для создания этого запроса, чтобы затем вернуть таблицу.
Спасибо.
SELECT ResultID, ResultName, ResultDescription,
CAST([233] AS Real) as [ResultColA],
CAST([234] AS Int) as [ResultColB],
CAST([236] AS NVarChar) as [ResultColC],
CAST([237] AS Int) as [ResultColD]
FROM (
SELECT st.*, avt.ResultID as avtID, avt.SomeAttrID, avt.Value
FROM Result_AV avt
JOIN Result st ON avt.ResultID = st.ResultID) as p
PIVOT (
MAX(Value) FOR AttributeID IN ([233], [234], [236], [237])) as pvt
Обновление: если у меня есть таблица, в которой есть производитель автомобилей, и мне нужны все атрибуты автомобилей производства GM. Я бы посмотрел информацию об автомобилях, использовал ее, чтобы получить информацию обо всех производителях автомобилей, которые были бы GM, затем я хотел бы получить информацию обо всех автомобилях, произведенных GM, но, поскольку информация была сгенерирована динамически, столбцы разные.
Это то место, где я нахожусь, и мне нужно динамически генерировать эту таблицу. Мне любопытно, могу ли я просто вызвать веб-сервис, получить динамически сгенерированный запрос и затем выполнить хранимую процедуру или функцию для выполнения этого запроса.
Обновление 2: следующий шаг после того, как я получу эту таблицу, это то, что мне нужно будет сложить все параметры автомобиля (в данном случае), чтобы определить фактическую цену автомобиля. Вот почему он должен быть в табличном формате. На данный момент я смотрю на автомобили, сделанные GM, но я мог бы сделать еще один запрос на лодки, сделанные SeaRay, и запрос должен работать так же, даже если столбцы таблицы на лодках отличаются от машин были.