Eu sei que você disse que não há
SQL dinâmico , mas não vejo nenhuma maneira de fazer isso em SQL direto . Se você verificar minhas respostas para problemas semelhantes em Tabela Dinâmica e Colunas Concatenadas e PIVOT no sql 2005
O
SQL dinâmico não há vulnerabilidade à injeção e não há uma boa razão para proibi-la. Outra possibilidade (se os dados estiverem mudando com pouca frequência) é fazer geração de código - em vez de SQL dinâmico , o SQL é gerado para um procedimento armazenado regularmente.