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...