Условная задача PIVOT/преобразования

У меня есть таблица с тремя столбцами, которые мы назовем ID1, ID2 и Значение.

Образец данных:

ID  ID1 Value
1   1   0
1   2   1
1   3   1
1   3   2
1   4   0
1   4   1
1   5   0
1   5   2
2   1   2

Значение ограничено 0, 1 или 2.

Что мне нужно сделать, так это повернуть/преобразовать эти данные в основанный на столбцах подсчет того, сколько раз появляется каждое возможное значение, сгруппированное по идентификатору, ID1. Результат вышеизложенного должен быть:

ID  ID1  Val0  Val1  Val2
1   1    1     0     0
1   2    0     1     0
1   3    0     1     1
1   4    1     1     0
1   5    1     0     1
2   1    0     0     1

Я использую SQL Server 2008. Как мне это сделать?


person IamIC    schedule 31.12.2010    source источник
comment
Я предполагаю, что вторая строка в результатах должна быть 1 2 0 1 0? В исходных данных есть только одна строка 1 2 1.   -  person Martin Smith    schedule 31.12.2010
comment
Ты прав. Я исправил это.   -  person IamIC    schedule 31.12.2010