Транспонировать набор результатов SQL

У меня есть данные в следующем формате:

Machine |  week_end  | widgets
 A      | 05-26-2013 | 5
 B      | 05-26-2013 | 4
 A      | 04-01-2013 | 6
 B      | 04-01-2013 | 0

Я хочу, чтобы мой набор результатов выглядел следующим образом:

Machine | 05-26-2013 | 04-01+2013 | ...
 A      | 5          | 6          |
 B      | 4          | 0          |

Я не совсем уверен, как действовать дальше - как можно транспонировать такую ​​таблицу без необходимости явно указывать выходные дни (или что-то еще) явно в запросе? (БД - это SQL Server 2008.)

2 ответа

Решение

Вам нужно будет немного изучить SQL PIVOT функция. Это позволит вам превращать строки в столбцы. Это должно быть то, что вы ищете, когда вы узнаете, как его применить.

Проверьте эту ссылку: Использование PIVOT и UNPIVOT

Вы можете использовать динамический поворот, чтобы сделать это. Вот отличный пример:

SQL Server динамический запрос PIVOT?

Другие вопросы по тегам