[firebase-br] ¿Se puede mejorar esta consulta?

W O sistemas2000profesional em gmail.com
Seg Jun 24 13:03:40 -03 2013


Ok Rodrigo, muchísimas gracias.

Saludos.

Walter.



2013/6/24 Rodrigo Gomes da Silva <rodrgomes em gmail.com>

> Pode usar com starting que passaria a usar indice pelo RUC (se não tiver um
> teria de criar)
>
> SELECT
>      (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
> C.CLI_RUCXXX starting with '44444401') AS N_CONSUMIDOR_FINAL,
>      (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
> C.CLI_RUCXXX starting with = '77777701') AS N_AGENTE_DIPLOMATICO,
>      (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
> C.CLI_RUCXXX starting with = '88888801') AS N_CLIENTE_EXTERIOR
>
>
> 2013/6/24 W O <sistemas2000profesional em gmail.com>
>
> > Hola a todos
> >
> > Necesito saber si hay al menos un cliente cuyo RUC sea '44444401' o cuyo
> > RUC sea '77777701' o cuyo RUC sea '88888801', así que escribí la consulta
> > de abajo:
> >
> > SELECT
> >      (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
> > LEFT(C.CLI_RUCXXX, 8) = '44444401') AS N_CONSUMIDOR_FINAL,
> >      (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
> > LEFT(C.CLI_RUCXXX, 8) = '77777701') AS N_AGENTE_DIPLOMATICO,
> >      (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
> > LEFT(C.CLI_RUCXXX, 8) = '88888801') AS N_CLIENTE_EXTERIOR
> >   FROM
> >      VENTASCAB V
> >   WHERE
> >      V.VTC_CODSUC >= 0;
> >
> > En cada caso, usé SELECT COUNT(*) para saber si hay clientes con ese RUC,
> > pero realmente no necesito conocer la cantidad total sino solamente si
> hay
> > al menos un cliente que tiene ese RUC.
> >
> > En realidad la tabla no es muy grande, tiene solamente unos 10.000
> > registros así que obtener la información es rápido pero quería saber si
> se
> > puede mejorar la consulta para no usar SELECT COUNT(*)
> >
> > De la manera en que está, si N_CONSUMIDOR_FINAL es mayor que 0 yo sé que
> > hay al menos un consumidor final. Pero solamente necesito saber si hay un
> > consumidor final o no, no necesito saber cuantos son, así que recorrer la
> > tabla de CLIENTES tres veces me parece que es una pérdida de tiempo.
> >
> > ¿Se puede mejorar esta consulta para que sea más rápida?
> >
> > Saludos.
> >
> > Walter.
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista