[firebase-br] Duvida em Select
Eduardo Bahiense
eduardo em icontroller.com.br
Qua Jan 24 20:08:40 -03 2007
Olá Alisson
Os 8 primeiros digitos do CNPJ dão exclusividade ao número. Assim, se
você pedir
WHERE CNPJ STARTING WITH '00.002.003', virão todas as empresas, matriz e
filiais que compartilham este número.
No caso de várias empresas, você pode continuar usando IN desta forma:
WHERE SUBSTRING CNPJ FROM 1 FOR 10 IN ('00.002.003', 00.005.098, ...)
No segundo caso, você vai ter pouca otimização em função do SUBSTRING.
Você pode contornar isso se houverem outros itens do WHERE que tenham
apoio de índices, ou criar um campo só para guardar os 8 primeiros
dígitos e criar um índice nele. Existe também no FB 2 a possibilidade de
índice com expressão, mas não li o suficiente sobre isto para te ajudar.
Abs, Eduardo
Alisson escreveu:
> Eae Moçada...
>
> Gostaria de pedir a ajuda dos colegas no seguinte:
>
> hoje em dia.. tenho esta select funcionando (apenas exemplo.)
>
> Select Sum(Valores)
> From Tabela
> Where Empresa in (1,2,3,4... etc);
>
> Nessa caso, o usuario pode selecionar 1 ou mais empresas, ai montarei essa
> clausula where com o in ou nao...
> maravilha...
>
> me problema vem agora.
>
> existem empresas que possuem filiais, e quando isso ocorrer, preciso que
> neste select venha somado matriz + Filial.
> mas hj em dia a unica informaçao que tenho sobre matriz e filial é o CNPJ
> ... ou seja.
> o cnpj da Matriz sendo 00.002.003/0001-01 e da Filial sendo
> 00.002.003/0002-01 por exemplo
>
> Gostaria de pedir uma ajuda de vcs, caso jah tenha precisado de algo
> parecido com isso.
> o que eu realmente devo fazer...??? buscar apenas pelos 8 primeiros digitos
> do CNPJ e comparar isso, ou se eu devo montar algum tipo de tabela de
> filiais
> e cadastra-las nessa tabela ???
>
> Reparem que nao tenho a intençao de montar uma SP. quero isso tudo em
> Select, pois estou utilizando em relatorios entao soh quero montar somas...
> claro q em ultimo caso recorreria a SP, mas tentando nao recorrer.. hehehehe
>
> espero q ter sido claro...
>
> Obrigado.
>
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista