select 1 mesmo
ou select null.
O importante é a query retornar algum valor.
* tbm funciona, mas você vai foçar dados que não vai usar pra memória, o
que não é interessante.

Evandro Giachetto
Oracle DBA
[email protected]


Em 3 de fevereiro de 2015 17:22, Emerson Sanches [email protected]
[oracle_br] <[email protected]> escreveu:

>
>
> Acho que voce matou Evandro. Só uma duvida, no 1 exemplo a sintaxe é ....where
> exists (select 1 from.... ou .........where exists (select * from........?
>
> Muito obrigado.
>
> Emerson Sanches
> Analista de Sistemas
>
> Em 3 de fevereiro de 2015 16:55, Evandro Giachetto
> [email protected] [oracle_br] <[email protected]>
> escreveu:
>
>>
>>
>> Não sei se entendi muito bem sua dúvida, se não, peço desculpas.
>>
>> Tente algo do tipo:
>>
>>
>> Select *
>> from Mestre
>> where exists (select 1 from Detalhe
>>                                          where  Detalhe.NumNota = 
>> Mestre.NumNota
>> and Detalhe.Serie = Mestre.Serie and Detalhe.Fornecedor =
>> Mestre.Fornecedor and Detalhe.TipoMovto = Mestre.TipoMovto and Detalhe.Item
>> = &item).
>>
>> Ou
>>
>> Select *
>> from Mestre
>> where (NumNota, Serie, Fornecedor, TipoMovto) in (select NumNota, Serie,
>> Fornecedor, TipoMovto from Detalhe where Item = &item);
>>
>>
>> Só lembrando.
>>
>> Por questão de performance.
>>
>> Se seu Subselect (select ... from Detalhe where Item = %Item) trouxer um
>> número pequeno de dados, então o segundo exemplo deve exectuar mais rápido.
>>
>> Se por ventura, este subselect trouxer um número muito grande de
>> resultados, então a primeira opção deve apresentar uma performance melhor.
>>
>> Se a quantidade de resultados for balanceada entre as duas queries, então
>> as duas opções devem mostrar performance semelhante.
>>
>>
>> Evandro Giachetto
>> Oracle DBA
>> [email protected]
>>
>>
>> Em 3 de fevereiro de 2015 16:41, Emerson Sanches
>> [email protected] [oracle_br] <[email protected]>
>> escreveu:
>>
>>
>>>
>>> Bom tarde a todos do grupo. Em meu sistema tenho uma tabela de NF cuja
>>> chave primaria são os campos NumNota, Serie, Fornecedor, TipoMovto e outra
>>> tabela com os detalhes dessa nota com chave primaria composta por NumNota,
>>> Serie, Fornecedor, TipoMovto e Item. Ate tudo normalíssimo, acredito que
>>> todos tenham uma normalização desse tipo em seus sistemas.
>>> O problema é que meu chefe quer que eu faça uma pesquisa de notas
>>> fiscais, mas quer ter como parâmetro de busca o item da nota fiscal, ou
>>> seja, ele quer pesquisar pelo código de entrada do produto. Para resolver
>>> isso fiz um subquery assim:
>>>
>>> Select *
>>> from Mestre
>>> where  Mestre.NumNota in (Select  Detalhe.NumNota
>>>                                          from    Detalhe
>>>                                          where  Detalhe.Item = &item)
>>>
>>>
>>> Essa solução funciona parcialmente, pois vai me trazer a nota do item
>>> pesquisado, mas também vai trazer a nota de outro fornecedor qualquer, que
>>> tenha uma nota com o mesmo numero cadastrado no sistema. Para resolver isso
>>> eu teria que passar no subquery todos o campos da PK da tabela Mestre, e é
>>> exatamente isso que não sei como fazer. Se alguém tiver alguma sugestão,
>>> todas serão bem vindas.
>>>
>>> Obrigado
>>>
>>>
>>>
>>> Emerson Sanches
>>>
>>>
>>
>  
>

Responder a