Запрос кросс-таблицы в SQL Server 2000

Я надеюсь, что кто-то попытался это сделать раньше, и я могу получить некоторые советы, прежде чем я пойду дальше.

Я хочу создать нечто похожее на запрос кросс-таблицы в sql-server 2000.

У меня есть структура таблицы, подобная следующей:

Item Item_Parameter Parameter id item_id id desc parameter_id desc value 

То, что я хочу сделать, – это сгладить данные с помощью процедуры запроса / хранения, чтобы упростить создание отчетов.

Идеальное решение обеспечило бы такие результаты, как:

  Parameter.desc[0] Parameter.desc[1] Parameter.desc[3]... item.id[0] Item_Parameter.value Item_Parameter.value Item_Parameter.value item.id[1] Item_Parameter.value Item_Parameter.value Item_Parameter.value 

Если вы уверены, что для каждой комбинации параметров есть не более одного значения, вы можете использовать простую group by :

 select item_id , max(case when parameter_id = 1 then value) Par1 , max(case when parameter_id = 2 then value) Par2 , max(case when parameter_id = 3 then value) Par3 from item_paramenter group by item_id 

Вы можете использовать min или avg вместо max : это не имеет значения, потому что для каждого параметра в item_id есть только одно значение,

Без динамического SQL невозможно вернуть имена столбцов на основе описания в таблице параметров.

В результате я создал хранимую процедуру ( http://www.sqlteam.com/article/dynamic-cross-tabs-pivot-tables ) для динамического создания SQL-запроса.

Спасибо Дэн и Андомар

  • Получение первичного ключа записей, которые я только что вставил
  • Найти все результаты для 2-й по самую последнюю дату
  • SQL Server не может хранить более 4000 символов в локальной строковой переменной
  • Дата последнего изменения объекта
  • Как определить, какая строка вызвала ошибку - ПРОВЕРКА ОШИБКИ
  • Как создать дату начала и дату окончания SQL?
  • SQL Server: как прервать серию пакетов в Query Analyzer?
  • Медленная (ни к одной) производительность на SQL 2005 после присоединения базы данных SQL 2000
  • Как определить рабочую неделю в SQL Server 2000?
  • Найти экземпляр символа в базе данных
  • Максимальный размер sql-сервера без подзапроса
  • Interesting Posts

    Есть ли способ открыть Zope DB в .Net?

    Как создать полнотекстовый каталог в миграции базы данных сущностей?

    Копирование данных в таблицу A в таблицу B (Is Identity == Yes)

    Выбор операций из таблиц с использованием JOINS в хранимых процедурах

    Как заменить символ в SQL

    Как обновить таблицу с помощью оператора select, который создает несколько строк?

    Глядя на создание клиентского приложения (WPF) для выполнения CRUD-операций с удаленными данными

    Как найти диапазоны дат в записях с последовательными датами и дублирующимися данными

    Преобразование двух столбцов в 5 строк в sql-сервере

    Реализация рекурсивного запроса в SQL

    Есть ли проблема с производительностью с использованием Row_Number для реализации подкачки таблиц в Sql Server 2008?

    генерировать DDL-скрипт из базы данных SQL Server

    Создайте таблицу в файловой группе, отличной от стандартной

    Ошибка запуска SQL Server INSTEAD OF INSERT

    powershell извлекает значение из таблицы

    Давайте будем гением компьютера.