Abel este seu select talvez não seja a melhor maneira , pois se vc tiver mais 
de um produto com o menor valor  , o ROWNUM =1 
trara apenas uma linha

Ve se funciona este select e se o tempo de performance é  vantajoso

set timing on
select b.Pro_In_Codigo Produto,
         b.Agn_In_Codigo Fornecedor,
         b.Cof_Re_Vlcustu "Melhor Oferta de Custo"
from mgadm.Est_Itenscotpreco b
where b.Cof_Re_Vlcustu = (select min(Cof_Re_Vlcustu) from 
mgadm.Est_Itenscotpreco)

and b.Cot_In_Codigo = 9616
and b.Org_Tab_In_Codigo = 53
and b.Org_Pad_In_Codigo = 1
and b.Org_In_Codigo = 8
and b.Org_Tau_St_Codigo = 'G'
and b.Pro_Tab_In_Codigo = 100
and b.Pro_Pad_In_Codigo = 1
and b.Pro_In_Codigo = 26532
and b.Cof_Re_Vlcustu > 0


set timing off



Abs

  ----- Original Message ----- 
  From: Abel - Informatica 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, December 07, 2006 8:15 AM
  Subject: [oracle_br] Mínimo valor usando sub-select


  select b.Pro_In_Codigo Produto,
  b.Agn_In_Codigo Fornecedor,
  b.Cof_Re_Vlcustu "Melhor Oferta de Custo"
  from mgadm.Est_Itenscotpreco b
  where b.Cot_In_Codigo = 9616
  and b.Org_Tab_In_Codigo = 53
  and b.Org_Pad_In_Codigo = 1
  and b.Org_In_Codigo = 8
  and b.Org_Tau_St_Codigo = 'G'
  and b.Pro_Tab_In_Codigo = 100
  and b.Pro_Pad_In_Codigo = 1
  and b.Pro_In_Codigo = 26532
  and b.Cof_Re_Vlcustu > 0
  group by b.Pro_In_Codigo, b.Agn_In_Codigo, Cof_Re_Vlcustu
  order by 3 

  Olá, estou utilizando a instrução SQL acima e após executar a mesma, ela me 
retorna a seguinte informação :

  Produto Fornecedor Melhor Oferta de Custo

  26532 13254 22,17959
  26532 16318 22,86054
  26532 19074 23,34693
  26532 17096 24,31972

  Preciso retornar o menor valor entre os listados acima porém preciso tbém da 
informação do Produto e do Fornecedor. Para isso, utilizei a seguinte forma :

  select xx.* from ( 
  select b.Pro_In_Codigo Produto,
  b.Agn_In_Codigo Fornecedor ,
  b.Cof_Re_Vlcustu "Melhor Oferta de Custo"
  from mgadm.Est_Itenscotpreco b
  where b.Cot_In_Codigo = 9616
  and b.Org_Tab_In_Codigo = 53
  and b.Org_Pad_In_Codigo = 1
  and b.Org_In_Codigo = 8
  and b.Org_Tau_St_Codigo = 'G'
  and b.Pro_Tab_In_Codigo = 100
  and b.Pro_Pad_In_Codigo = 1
  and b.Pro_In_Codigo = 26532
  and b.Cof_Re_Vlcustu > 0
  group by b.Pro_In_Codigo, b.Agn_In_Codigo, Cof_Re_Vlcustu
  order by 3 
  ) xx 
  where rownum = 1 

  A pergunta é : Esta é a melhor forma de se fazer isso ?
  Existe outra forma de se conseguir o mesmo resultado sem utilizar o 
sub-select ? 

  Aguardo seus comentários. 

  Att. Abel de Souza Magalhães
  ___________________________________
  Depto. Informática 
  Ober S/A Indústria e Comércio
  [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 
  http://www.ober.com.br <http://www.ober.com.br/> 
  (19) 3466-9200 R. 9391


  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]

Responder a