SUB_QUERY

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Laninha
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 68
Registrado em: Qua, 24 Out 2007 3:06 pm
Localização: Nilópolis - Rio de Janeiro

Oi!!
Eu tenho um bloco basetable no forms e outro não basetable recebendo parâmentros, sendo que eu preciso que o bloco basetable traga os registros de acordo com os parâmetros que jogarmos no bloco não basetable, então eu criei essa sub-query abaixo dentro da PRE_QUERY:

Selecionar tudo

select  ffor_fat_fornec.dt_emissao_fat_fornec, ffor_fat_fornec.num_fat_fornec, ffor_fat_fornec.id_unid_fornec           
  from ffor_fat_fornec
 where ffor_fat_fornec.num_fat_fornec in
 (select ffor_fat_fornec.num_fat_fornec
    from  clas_classe_item
   where clas_classe_item.cod_classe_item in
   (select clas_classe_item.cod_classe_item
      from  clas_classe_item
            ffor_fat_fornec,        
            ffor_cargas_fornec,                   
            pedi_clas_envolve_pedido             
     where clas_classe_item.cod_classe_item = '01'
       and pedi_clas_envolve_pedido.cod_classe_item = clas_classe_item.cod_classe_item
       and pedi_clas_envolve_pedido.tipo_classe_item = clas_classe_item.tipo_classe_item
       and ffor_fat_fornec.num_fat_fornec = ffor_cargas_fornec.num_fat_fornec
       and ffor_fat_fornec.id_unid_fornec =ffor_cargas_fornec.id_unid_fornec
       and ffor_fat_fornec.id_instalacao_empresa_pedido = ffor_cargas_fornec.id_instalacao_empresa_pedido
       and ffor_cargas_fornec.num_pedido = pedi_clas_envolve_pedido.num_pedido))
funciona perfeitamente, ou seja, traz todas as classes 01 que eu joguei no parâmetro classe, mas gostaria de saber se existiria uma maneira melhor de fazer, pois quando a gero ela demora um pouco.


Obrigada,
Luana :D
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Luana, boa tarde.

O ideal seria gerar um Explain Plan da tua consulta, pra verificar o Custo etc...
Mas, uma dica: Esses " Select IN " , poderiam ser convertidos em "Exists", creio que fique um pouco mais rápida a consulta.
Laninha
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 68
Registrado em: Qua, 24 Out 2007 3:06 pm
Localização: Nilópolis - Rio de Janeiro

Trevisolli Boa tarde,

Valeu pela ajuda, realmente funcionou e ficou muito mais rápido.

Obrigada,
Um abraço,


Luana :D
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes