So che hai detto di non SQL dinamico , ma non vedo alcun modo per farlo in SQL diretto .
Se dai un'occhiata alle mie risposte a problemi simili in tabella pivot e colonne concatenate e PIVOT in sql 2005
Il dinamico SQL non è vulnerabile all'iniezione e non ci sono buone ragioni per proibirlo. Un'altra possibilità (se i dati cambiano molto di rado) è eseguire la generazione di codice, invece di SQL dinamico , il SQL viene generato regolarmente in una procedura memorizzata.