Я пытаюсь для того чтобы достигнуть этого:Преобразование строк в столбцы с неизвестным количеством элементов
Начальная таблица:
PARM1 |PARM2 |DATE
-------------------
VALUE1|VALUE2|DATE1
VALUE3|VALUE4|DATE2
Окончательный результат:
PARM |DATE1 |DATE2 |...
-----------------------
PARM1|VALUE1|VALUE3|...
PARM2|VALUE2|VALUE4|...
Короче говоря, я хочу конвертировать мой имена параметров в строки и иметь столбец для каждой даты, где ячейки содержат значения параметров для даты и параметра.
До сих пор мне удалось получить это:
SELECT *
FROM
(
SELECT [Parameter], [DATE], VALUE
FROM
(
SELECT PARM1, PARM2 FROM PARAMETER_VALUES
) SOURCE_TABLE
UNPIVOT
(
VALOR FOR [Parameter] IN (PARM1, PARM2)
) UNPIVOTED_TABLE
) T
Проблема заключается в том, что я не могу откинуть результаты сейчас, потому что я не знаю, сколько ДАТЫ есть. Я хочу, чтобы он был динамичным.
Возможно ли это?
Звучит как структура EAV, которая пришла, чтобы укусить вас сзади. По сути, базы данных не предназначены для динамического создания столбцов. Итак, если это то, что вы хотите сделать, вы должны сделать это за пределами базы данных в средстве среднего уровня или в инструменте отчетности. – Thomas
Если вы отправляете код, XML или фиксированные структуры таблиц, ** пожалуйста ** выделите эти строки в текстовом редакторе и нажмите кнопку «код» (101 010) на панели инструментов редактора, чтобы красиво отформатировать и выделить синтаксис! –