Как я могу сделать динамический свод в SQL Server 2000 - PullRequest
0 голосов
/ 16 ноября 2010

Я хочу написать оператор SQL, который использует сводную таблицу в SQL Server 2000. Ключевое слово PIVOT недоступно в SQL Server 2000, поэтому я нашел несколько примеров, в которых используется оператор case, но для этого необходимо заранее знать имена столбцов, какиеЯ не будуКак мне сделать сводную диаграмму, которая динамически генерирует имена столбцов из имеющихся у него данных?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2010

Мы создаем команды SQL с инструкциями CASE из нашего приложения и запускаем их в базе данных (любой базе данных, а не конкретно сервере SQL). Сначала мы определяем количество столбцов сводки и их имена, используя один запрос, из этих результатов мы генерируем следующий запрос. Таким образом, первый запрос для определения столбцов выглядит примерно так:

SELECT DISTINCT myField FROM myTable

Затем мы используем все значения в этом результате для создания команды SQL, в которой для каждого значения создается оператор CASE.

Мы хотели получить независимое от базы данных решение, поэтому мы выполняем эту обработку вне базы данных, но я уверен, что вы можете сделать то же самое в хранимой процедуре с самим сервером SQL.

0 голосов
/ 16 ноября 2010

Я не пытался реплицировать PIVOT на SQL Server 2000, но я использовал PIVOT, когда заранее не знаю имен столбцов.Вместо этого я использовал ROW_NUMBER(), чтобы определить имена столбцов.Вы можете попробовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...