таблица пользовательских sql pivot - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть источник данных SQL Server, который я не могу изменить структуру.Я начал сводить данные с помощью запроса CustomSQL ниже, но мне нужно изменить запрос таким образом, чтобы при добавлении данных итераций 3, 4, 5 ... n к источнику в будущем они автоматически включались в сводные данные.Я не хочу постоянно обновлять запрос.Любые идеи?

KPI Имя Итерации 1 Итерации 2

a 1 2 b 50 51

Select [KPI]
, 'Iteration1' as [Iteration]
, [Iteration1] as [Count]
From [MC_KPI]
Union ALL

Select [KPI]
, 'Iteration2' as [Iteration]
, [Iteration2] as [Count]
From [KPI]

Теперь у меня есть

Итерации имени KPI 1Итерация 2

a 1 1 a 2 2 b 1 50 b 2 51

1 Ответ

0 голосов
/ 10 декабря 2018

То, что вы делаете, называется «unpivot» в SQL Server.Вы можете увидеть описание здесь:

https://docs.microsoft.com/en-us/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-2017

Если вы хотите иметь возможность добавлять итерации без необходимости что-либо изменять в таблице, вы можете создать представление в SQL, которое отменяет ипросто сделайте "выбрать * из вида" в таблице.Это дало бы вам возможность изменить представление под обложками из таблицы и заставить вещи продолжать работать (поскольку вывод unpivot - это просто пакет свойств, а столбцы не меняются при добавлении свойств в вывод)

...