Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2009, 15:26
jasv
 
Fecha de Ingreso: julio-2008
Ubicación: Caldas, Antioquia, Colombia
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 4
Busqueda Como optimizo esta consulta SQL

Hola a todos, estoy utilizando una base de datos en Pervasive, si no lo conocen es muy similar a SQL Server.

Necesito hacer una consulta sobre dos tablas. La primera de las tablas se llama Referencias, me interesan de ella los campos referencia,descripcion... entre otros.
La otra tabla se llama Historico de Trans. que guarda todas las transacciones hechas con las referencias, por lo que estas dos tablas se enlazarían por el campo referencia presente en ambas tablas. Además están allí el año, mes y día de los movimientos y la cantidad del movimiento. Con los datos de esta tabla debo realizar un promedio de consumos por mes del último año (es decir, sumar los consumos de cada uno de los últimos 12 meses y dividirlos por 12).

Hasta ahora le he hecho así:

Código:
SELECT referencia,
descripcion,
"Punto Minimo",
"Punto Maximo",
("Saldo Inicial Mes"+"Entradas Mes"-"Salidas Mes") as Saldo,
(SELECT TOP 1 ROUND((SUM ("Cantidad")/12),2) as 'CPM'
FROM "Historico de Trans" 
WHERE "Bodega" = '01' 
AND "Tipo Transaccion" = '17' 
AND "Referencia" = Referencias.referencia
AND (
	("Anno Documento" = '2009' AND "Mes Documento" < '04' ) 
	OR 
	("Anno Documento" = '2008' AND "Mes Documento" >= '04' )
))
FROM Referencias  
WHERE bodega ='01'
Pero se tarda un eternidad en hacer esto, y los usuarios se quejan de lentitud, por lo que necesito optimizarla de alguna forma.

Si alguien me puede guiar con este asunto le estaré altamente agradecido... Saludos.