Query stilo crosstab

Bueno tengo una duda en oracle quisiera saber si se puede hacer un query yipo crosstab por ejemplo yo necesito sacar los montos de mis clientes por meses en un rango de fecha .. Por ejemplo si yo pongo del 1/01/2009 hasta el 01/12/2009 entonces que me muestre los doce mese así
2009_enero     2009_febrerero-----------------------------2009_diciembre
10 10 20
0 14 45
(asi por el rango de fechas yo lo hice pero en duro asi
case to_char(fecha_doc,'MM')
when '01'  then monto
end ) as  enero
Así hasta diciembre el problema es que cuando hago mi filtro por ejemplo
del 1/01/2009 hayas el 1/03/2009  me siguen saliendo los doce meses claro pero con data solo en los tres meses enero febrero y marzo lo que ue no puedo es como mostrarar solo esos campos que están en mi rango. Espero me puedan ayudar o más o menos como llegar a ala solución

1 respuesta

Respuesta
-1
Entiendo que quieres que los campos a mostrar sean dinámicos, según la selección de fecha; para ello necesitas crear código PL/SQL para montar una consulta dinámica. Esto te permitirá seleccionar sólo los campos de meses deseados.
¿Esto lo vas a exportar a un excel? Te lo pregunto, ya que si es así, te puedes ahorrar el trabajo, ya que la tendencia es tener el excel normalizado en todos sus meses con valores a 0 para cuando no se esté. La ventaja del excel es que puede conectarse a la BD, aplicando el filtro de fecha.
Responde a las preguntas que te he realizado.
No doc solo necesito saber si se puede hacer un query al estilo croosstab nada más solo mostrando los campos del rango en este caso de meses nada más doc.-
Sí se puede a partir de la 11g, ya que posee la cláusula PIVOT y UNPIVOT para convertir filas en campos y campos en filas respectivamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas