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 evandrogiache...@gmail.com Em 3 de fevereiro de 2015 16:41, Emerson Sanches emerson.sanc...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> 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 > > >