1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Otimizar consulta

Discussão em 'Progress 4GL' iniciado por spiderpoison, Abril 15, 2011.

  1. spiderpoison

    spiderpoison Sem Pontuação

    Bom dia,

    Estava querendo saber se é possivel colocar um DO dentro dessa query para otimizar a sintax.

    Código:
    FOR EACH moviproc
                WHERE moviproc.cd-modalidade = usuario.cd-modalidade
                  AND moviproc.nr-ter-adesao = usuario.nr-ter-adesao
                  AND moviproc.cd-usuario = usuario.cd-usuario
                  AND ( IF dtinicialrealizado <> '' THEN (moviproc.dt-realizacao >= dt-inicialrealizado AND moviproc.dt-realizacao <= dt-finalrealizado )
                      AND (( IF procedimentorealizado[1] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[1]  AND moviproc.cd-grupo-proc-amb = pr-g-p[1] AND moviproc.cd-procedimento = pr-c-p[1] AND moviproc.dv-procedimento = pr-d-p[1] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[2] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[2]  AND moviproc.cd-grupo-proc-amb = pr-g-p[2] AND moviproc.cd-procedimento = pr-c-p[2] AND moviproc.dv-procedimento = pr-d-p[2] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[3] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[3]  AND moviproc.cd-grupo-proc-amb = pr-g-p[3] AND moviproc.cd-procedimento = pr-c-p[3] AND moviproc.dv-procedimento = pr-d-p[3] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[4] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[4]  AND moviproc.cd-grupo-proc-amb = pr-g-p[4] AND moviproc.cd-procedimento = pr-c-p[4] AND moviproc.dv-procedimento = pr-d-p[4] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[5] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[5]  AND moviproc.cd-grupo-proc-amb = pr-g-p[5] AND moviproc.cd-procedimento = pr-c-p[5] AND moviproc.dv-procedimento = pr-d-p[5] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[6] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[6]  AND moviproc.cd-grupo-proc-amb = pr-g-p[6] AND moviproc.cd-procedimento = pr-c-p[6] AND moviproc.dv-procedimento = pr-d-p[6] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[7] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[7]  AND moviproc.cd-grupo-proc-amb = pr-g-p[7] AND moviproc.cd-procedimento = pr-c-p[7] AND moviproc.dv-procedimento = pr-d-p[7] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[8] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[8]  AND moviproc.cd-grupo-proc-amb = pr-g-p[8] AND moviproc.cd-procedimento = pr-c-p[8] AND moviproc.dv-procedimento = pr-d-p[8] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[9] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[9]  AND moviproc.cd-grupo-proc-amb = pr-g-p[9] AND moviproc.cd-procedimento = pr-c-p[9] AND moviproc.dv-procedimento = pr-d-p[9] ) ELSE 1=2 )
                           OR ( IF procedimentorealizado[10] <> '' THEN ( moviproc.cd-esp-amb = pr-e-p[10]  AND moviproc.cd-grupo-proc-amb = pr-g-p[10] AND moviproc.cd-procedimento = pr-c-p[10] AND moviproc.dv-procedimento = pr-d-p[10] ) ELSE 1=2 ))
    			   ELSE 1=1 )
                   AND ( IF dtinicialnaorealizado <> '' THEN (moviproc.dt-realizacao >= dt-inicialnaorealizado AND moviproc.dt-realizacao <= dt-finalnaorealizado )
                      AND (( IF procedimentonaorealizado[1] <> '' THEN ( moviproc.cd-esp-amb <> pn-e-p[1]  AND moviproc.cd-grupo-proc-amb <> pn-g-p[1] AND moviproc.cd-procedimento <> pn-c-p[1] AND moviproc.dv-procedimento <> pn-d-p[1] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[2] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[2]  AND moviproc.cd-grupo-proc-amb = pn-g-p[2] AND moviproc.cd-procedimento = pn-c-p[2] AND moviproc.dv-procedimento = pn-d-p[2] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[3] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[3]  AND moviproc.cd-grupo-proc-amb = pn-g-p[3] AND moviproc.cd-procedimento = pn-c-p[3] AND moviproc.dv-procedimento = pn-d-p[3] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[4] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[4]  AND moviproc.cd-grupo-proc-amb = pn-g-p[4] AND moviproc.cd-procedimento = pn-c-p[4] AND moviproc.dv-procedimento = pn-d-p[4] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[5] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[5]  AND moviproc.cd-grupo-proc-amb = pn-g-p[5] AND moviproc.cd-procedimento = pn-c-p[5] AND moviproc.dv-procedimento = pn-d-p[5] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[6] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[6]  AND moviproc.cd-grupo-proc-amb = pn-g-p[6] AND moviproc.cd-procedimento = pn-c-p[6] AND moviproc.dv-procedimento = pn-d-p[6] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[7] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[7]  AND moviproc.cd-grupo-proc-amb = pn-g-p[7] AND moviproc.cd-procedimento = pn-c-p[7] AND moviproc.dv-procedimento = pn-d-p[7] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[8] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[8]  AND moviproc.cd-grupo-proc-amb = pn-g-p[8] AND moviproc.cd-procedimento = pn-c-p[8] AND moviproc.dv-procedimento = pn-d-p[8] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[9] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[9]  AND moviproc.cd-grupo-proc-amb = pn-g-p[9] AND moviproc.cd-procedimento = pn-c-p[9] AND moviproc.dv-procedimento = pn-d-p[9] ) ELSE 1=2 )
                           OR ( IF procedimentonaorealizado[10] <> '' THEN ( moviproc.cd-esp-amb = pn-e-p[10]  AND moviproc.cd-grupo-proc-amb = pn-g-p[10] AND moviproc.cd-procedimento = pn-c-p[10] AND moviproc.dv-procedimento = pn-d-p[10] ) ELSE 1=2 ))
    			   ELSE 1=1 )

Compartilhe esta Página