Buscas hacer una columna por cada dia del mes, o sea 31 columnas.
¿pero que es lo que define cada fila? porque veo varios importes (TC, TD, pesos, u$s, etc) y varios campo de clase y subclase
De todos modos, podrías pensar la solución pasando por un 2do select , ponele agrupado por clase y subclase, y con 31 columnas definidas en funcion del dia.
Algo asi como
sele clasi, subclasi2, iif(dia = 1,efectivoventa,0) as efectivo01, iif(dia = 2,efectivoventa,0) as efectivo02, iif(dia = 3,efectivoventa,0) as efectivo03 .... asi las 31 columnas
con order by clasi, subclasi2 group by clasi, subclasi2
Ponele que queres un primer renglon de efectivo, otros de cheque, otro de tarjeta de credito, y asi, podrías resolver uniendo una serie de select por cada tipo de valor
sele clasi, subclasi2, PADR('EFECTIVO',20) as tipovalor, iif(dia = 1,efectivoventa,0) as importe01, iif(dia = 2,efectivoventa,0) as importe02, iif(dia = ....
esto en union con otro similar para cheque
sele clasi, subclasi2, PADR('CHEQUE',20) as tipovalor, iif(dia = 1,chequeventa,0) as importe01, iif(dia = 2,chequeventa,0) as importe02, iif(dia = ....
y así sucesivamente