[firebase-br] RES: Duvida usando IN
Sandro Souza
escovadordebits em gmail.com
Qui Dez 18 16:17:37 -03 2008
Bom dia/tarde Isael.
Só por curiosidade, você poderia verificar que sintaxe retorna o mesmo
resultado em menos tempo?
Essa que você está utilizando:
((l.cod_contrato,l.dat_lberacao) in
(select cod_contrato,DATA_LIB from ITE_LIB_PATR_CONTR where sit_gerada is
null)) or
((l.cod_contrato,l.dat_lberacao) in
(select cod_contrato,data_lib from ite_lib_produto_contr where sit_gerada
is null))
Ou essa:
((l.cod_contrato,l.dat_lberacao) in
(select cod_contrato,DATA_LIB from ITE_LIB_PATR_CONTR where sit_gerada is
null
union
select cod_contrato,data_lib from ite_lib_produto_contr where sit_gerada
is null))
Na primeira, o Firebird tem que guardar dois resultados de SELECTs e
utilizá-los para as pesquisas.
Na segunda, o Firebird tem que guardar apenas um único resultado de SELECT,
e daí surgiu minha curiosidade em saber, em um caso real como o seu, se a
prática comprovaria a teoria.
2008/12/18 Isael Faria Junior <isael em stetika.com.br>
> ASSIM FUNCIONOU
>
>
> CREATE VIEW VW_CONTRATO_LIBERACAO(
> COD_CONTRATO,
> DATA,
> CLIENTE,
> ENDERECO,
> CIDADE,
> UF,
> CONTATO,
> OBS,
> TIPO_DE_SERVICO,
> REGIME_DE_TRABALHO)
> AS
> select a.cod_contrato,
> l.dat_lberacao,
> a.nome_cliente,
> (select b.endereco from obra b where b.id_obra = A.id_obra),
> (select b.cidade from obra b where b.id_obra = A.id_obra),
> (select b.uf from obra b where b.id_obra = A.id_obra),
> a.nome_contato,
> (select obs_liberacao from contratos where cod_contrato =
> a.cod_contrato) obs,
> (select NOM_PREFIXO from proposta where COD_PROPOSta =
> (select COD_PROPOSTA from contratos where cod_contrato =
> a.cod_contrato) and
> cod_revisao = (select cod_revisao from contratos where cod_contrato
> = a.cod_contrato)),
> (select c.periodo_trab from proposta c where COD_PROPOSta =
> (select COD_PROPOSTA from contratos where cod_contrato =
> a.cod_contrato) and
> cod_revisao = (select cod_revisao from contratos where cod_contrato
> = a.cod_contrato))
> from liberacao_adicional l inner join
> VW_MANUTENCAO_CONTRATO a
> on l.cod_contrato = a.cod_contrato WHERE
> ((l.cod_contrato||l.dat_lberacao) in
> (select cod_contrato||DATA_LIB from ITE_LIB_PATR_CONTR where sit_gerada is
> null)) or
> ((l.cod_contrato||l.dat_lberacao) in
> (select cod_contrato||data_lib from ite_lib_produto_contr where sit_gerada
> is null))
> ;
>
> Sandro Souza escreveu:
>
>> Bom dia/tarde Isael.
>>
>>
>> Amigo, poderia enviar os exemplos que você testou e não deu certo?
>> Assim poderiamos te ajudar melhor.
>>
>> 2008/12/18 Isael Faria Junior <isael em stetika.com.br>
>>
>>
>>
>>> CONFORME ME MOSTRARAM O EXEMPO,
>>> VERIFIQUEI QUE JA FIZ DESSES MODOS POREM NÃO FUNCIONA
>>> PODERIA SER LIMITAÇÃO DA VERSÃO ? USO FB 1.5
>>>
>>> Eliezer de Souza escreveu:
>>>
>>>
>>>
>>>> Select * from tabela
>>>> Where campo in (CONDICAO1,CONDICAO2)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> -----Mensagem original-----
>>>> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br
>>>> ]
>>>> Em
>>>> nome de Isael Faria Junior
>>>> Enviada em: quinta-feira, 18 de dezembro de 2008 10:19
>>>> Para: FireBase
>>>> Assunto: [firebase-br] Duvida usando IN
>>>>
>>>> Pessoal,
>>>>
>>>> como funciona no fb o comando in com duas condições ?
>>>>
>>>> ______________________________________________
>>>> 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
>>>>
>>>> __________ Information from ESET Smart Security, version of virus
>>>> signature database 3698 (20081217) __________
>>>>
>>>> The message was checked by ESET Smart Security.
>>>>
>>>> http://www.eset.com
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> ______________________________________________
>>> 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
>>
>> __________ Information from ESET Smart Security, version of virus
>> signature database 3698 (20081217) __________
>>
>> The message was checked by ESET Smart Security.
>>
>> http://www.eset.com
>>
>>
>>
>>
>>
>>
>
> ______________________________________________
> 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