Oracle - SQL Optimizada para obtener el diario, mensual y anual

 
Vista:

SQL Optimizada para obtener el diario, mensual y anual

Publicado por chapito69 (1 intervención) el 29/05/2012 14:14:49
Hola a todos!!

Necesito que me "ilumineis" para obtener una serie de registros, de forma que pueda obtener en un solo registro el valor diario, mensual y anual.

Para no concretar con mi caso, y ayudar a que la gente lo vea mas claro, imaginemos que tenemos las tablas de vendedores, oficinas e indicadores. La tabla de indicadores contiene una serie de calculos que indican para cada dia y para cada oficina, por ejemplo, el numero de ventas (indicador 1), el importe total de las ventas (indicador 2), el importe medio (indicador n3) y la venta de mayor importe (ind. 4):

T_VENDEDORES
id_vendedor NUMBER (PK)
nombre VARCHAR2

T_OFICINAS
id_oficina NUMBER (PK)
nombre_oficnia VARCHAR2
poblacion VARCHAR2

T_INDICADORES
id_indicador NUMBER
id_vendedor NUMBER
id_oficina NUMBER
fecha DATE
valor NUMBER

Pues bien, necesito sacar una SELECT que me de, para un fecha concreta (imginemos el 30/04/2012), el valor del día, el acumulado mensual y el acumulado anual. Es decir, el sumatorio del dia, el sumatorio desde el día 01/04 al 30/04, y el sumatorio desde el 01/01 hasta el 30/04. Por supuesto, todo esto agrupado por vendedor y oficina...

He probado a hacerlo mediante ROLLUP y CUBE, que creo que seria lo que mas se acerca a mis necesidades, pero no me aclaro con estas funciones. Tambien he probado con un sum(valor) over (partition by fecha), pero los resultados tampoco eran excesivamente buenos...

¿Alguna idea?¿Cual creeis que es el mejor metodo?
Muchas gracias a todos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder