[RESOLVIDO] Left Outer Join

Discussão em 'EMS , HCM e Totvs 11' iniciado por lhp.s, Janeiro 26, 2016.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. lhp.s

    lhp.s Membro Participativo

    Boa tarde senhores,
    Preciso de uma ajuda com queries (Estou usando o Left Outer Join)
    O código abaixo está funcionado filé.
    Traz as dupli a pagar, mesmo se eu nao tiver tit_ap.


    Bom, mas eu quero botar um filtro na tit_ap (validar o saldo > 0)

    Mas acontece o seguinte: Se a condição saldo > 0 for atendida,
    alguns registros da tit_ap não serão lidos, e como estou
    usando left-join, automaticamente serão lidos apenas dupli-a-pagar.

    Existe alguma clausura que force a condição do lado direito?

    Grato


    Código:
    open query br-notas for each tt_notas
      ,
      first docum-est no-lock
      where rowid(docum-est) = tt_notas.rowid
      ,
      first emitente no-lock of docum-est
      ,
      each dupli-apagar of docum-est no-lock
      ,
      each  tit_ap no-lock
      left outer-join
      where tit_ap.cod_estab  = dupli-apagar.cod-estabel  and
      tit_ap.cdn_fornecedor  = dupli-apagar.cod-emitente and
      tit_ap.cod_espec_docto = dupli-apagar.cod-esp  and
      tit_ap.cod_ser_docto  = dupli-apagar.serie  and
      tit_ap.cod_tit_ap  = dupli-apagar.nro-docto  and
      tit_ap.cod_parcela  = dupli-apagar.parcela  and   
      not tit_ap.log_tit_ap_estordo
    
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Como estamos falando de progress, eu prefiro fazer for each encadeado, ou seja, um for each dentro do outro fazendo testes, o codigo fica mais limpo e vc tem mais dominio das regras, dessa forma que vc está fazendo, permite que o progress pense, e dai a coisa não vai 100% como queremos.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página