Qiubo sohnrojas, no se con que base de datos estes trabajando pero en SQL Server hay dos funciones, una se llama PIVOT y la otra UNPIVOT, una sirve para pasar filas a columnas y la otra hace lo contrario, de momento no recuerdo cual de las dos hace una u otra cosa, pero con eso solucionas tu...