2009-04-01 3 views
4

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

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

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

+0

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

ответ

5

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

0

Если у вас есть инструмент для отчетности, используйте ваш текущий запрос и сделайте отчет «martix», «cross-tab» или «сводная таблица».

+0

Я пытаюсь сделать это на веб-странице. То, что я хочу увидеть, - это код SQL для этого. –

+0

SQL по-прежнему не тот, кто это делает. Ваш «инструмент отчетности» теперь является вашим веб-языком. У вас есть гибкость на вашем языке, чтобы пересечь ваш набор записей таким образом, чтобы получить то, что вы хотите. В вашей инфраструктуре может даже быть какой-то класс поворота или транспонирования, чтобы сделать это за вас. –

Смежные вопросы