Здравствуйте!
Знаю, что эту задачу можно решить с помощью оператора pivot, но никак не соображу как.
Есть такая таблица:
select 'st1' st,'abc' pr
union all
select 'st2' st,'def' pr
union all
select 'st1' st,'def' pr
union all
select 'st2' st,'abc' pr
union all
select 'st1' st,'abc' pr
union all
select 'st2' st,'xyz' pr
Хочется получить вот такой результат:
----------------------------
pr | st1 | st2
----------------------------
abc | 2 | 1
def | 1 | 1
xyz | 0 | 1
----------------------------
И если это вообще возможно, то ещё и вот такой:
----------------------------
pr | st1 | st2 | total
----------------------------
abc | 2 | 1 | 3
def | 1 | 1 | 2
xyz | 0 | 1 | 1
Пример реальный, просто сведённый к абстрации. st может иметь только 2 значения. pr может иметь много разных значений.
Используется MS SQL 2008R2
Спасибо.