Ver Mensaje Individual
  #2  
Antiguo 01-11-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Reputación: 19
lpmlpm Va por buen camino
Asi a ojo, y sin tener las tablas para checar te daría estas sugerencias, trata con esta sentencia modificada:

Código SQL [-]
 select s.sucursal,c.cliente,c.nomcli,c.rfccli,
 Sum(c.importeant),Sum(c.importe) from TablaVentas c
join tesp_sucursales s on (s.clave = c.sucursal)
where
  c.sucursal = 1 and
  c.cliente >0 and
  ano=2005 and 
  mes >= 1 and 
  mes < 6 and 
  c.cliente not in 
  (select cliente from TablaVentas 
   where 
     ano=2005 and 
     mes >= 6) 
group by s.sucursal,c.cliente,c.nomcli,c.rfccli
order by sum(c.importe) desc

Quita la relacion del subselect con la consulta principal para que esta
se ejecute una sola vez, y asi creo que el optimizador interno el va a susutituir
la sentencia in por un exists...al hacer la subconsulta única sin necesidad de iterarla
en cada renglon de la consulta primaria debe hacerlo por lo menos un poco mas rápido...

No se si poniendo el sum que tienes en el order by en el select tambien ganes algo...
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita