la única manera que he visto para poder usar pivot para que el valor de las columnas sea dinamico es atrevas de pivot xml
select *
from (
— consulta SQL
)temp
pivot xml
( count(columna_tabla_temp_1)
for columna_tabla_temp_2 IN ( select paramaetros from tabla )
);
otro manera es que pasar como parámetro la lista de columnas
select *
from (
— consulta SQL
)temp
pivot
( count(columna_tabla_temp_1)
for columna_tabla_temp_2 IN ( &rango )
);
pudiendo ser rango — ‘1’ . ‘2’ , ‘3’