У меня есть таблица с двумя значениями: MAC и ID.T-SQL Найти значения между Min и Max при определенном индексе
Один идентификатор может иметь несколько MAC-адресов. Для примера:
Я добавил столбец Count, который подсчитывает количество идентификаторов:
Моя конечная цель, чтобы иметь MAC разделимся так:
Я ДУМАЮ, Я нахожусь на правильном пути, используя аргументы case:
select count, ID,
MAC1 = case
when count >0 then min(MAC) end,
MAC2 = case
when count = 2 then max(MAC) end,
MAC3 = case
when count = 3 then max(MAC) end,
MAC4 = case
when count = 4 then max(MAC) end from MACTABLE
Но это, очевидно, дает мне результаты, как это:
Так что мой вопрос заключается в следующем: Как получить mac2, MAC3 и т.д., если количество больше чем 2? Есть ли выбранная функция типа индекса? Могу ли я это переусердствовать? MAC не обязательно должны быть в определенном порядке, это лучший способ, которым я мог бы это сделать. Любая помощь приветствуется.
Я хотел бы получить максимальное количество и исходя от этого числа создать столбцы с шарниром. – scsimon
@scsimon, я слышал о pivot, но никогда не использовал его раньше. Не могли бы вы объяснить немного дальше? – Nick
Есть много примеров на сводной и динамической основе на SO, но вот пример того, как получить имена столбцов, чтобы начать работу http://rextester.com/NJOQ46585 – scsimon