Динамические столбцы при повороте - PullRequest
4 голосов
/ 01 апреля 2009

У меня есть таблица оборудования, таблица клиентов и редкая таблица оборудования и клиентов. Я хочу создать запрос, который возвращает 1, если запись таблицы оборудования / клиента существует, и 0, если ее нет для каждого клиента. У этой проблемы только небольшое количество клиентов, поэтому то, что я хочу вернуть, должно выглядеть так:

EquipmentID   Cust1   Cust2   Cust3
-----------   -----   -----   -----
       1234       1       0       1
       1357       0       1       0
       2234       1       0       0

Я могу использовать cross join для получения основного списка возможных записей, но это возвращает информацию в строках. Я хочу видеть его в столбцах, но ключевое слово PIVOT требует, чтобы я сначала назвал столбцы. Мне нужно, чтобы имена столбцов (Cust1, Cust2 ...) были динамическими.

Ответы [ 2 ]

5 голосов
/ 01 апреля 2009

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

0 голосов
/ 01 апреля 2009

Если у вас есть удобный инструмент отчетности, используйте текущий запрос и создайте отчет "martix", "cross-tab" или "pivot table".

...