Navigation:  Manutenção >

Consulta da manutenção

Previous  Top  Next

Visão geral

Este comando listará as atividades de manutenção realizadas nos ativos e suas principais informações, independentemente da situação em que se encontram.

 

Tabelas relacionadas

TABELA

Descrição

Chave primária (PK)

Tabelas de ligação

GNACTIVITY

Cadastro de atividades

CDGENACTIVITY

ADALLUSERS

ADDEPARTMENT

ADMAILTASKREL

ADPOSITION

ADROLE

ADTEAM

ADUSEREXTERNALDATA

GNACTIVITYTIMECFG

GNAPPROV

GNASSOC

GNCALENDAR

GNCHECKLISTANSWER

GNCOSTCONFIG

GNEVALRESULTUSED

GNEVALREVISION

GNFAVORITE

GNOBJECTASSOCGROUP

GNTYPEROLE

SERICHTEXT

GNCOSTCONFIG

Armazena os custos da atividade

CDCOSTCONFIG


GNEVALRESULTUSED

Resultado das avaliações realizadas

CDEVALRESULTUSED

GNEVALRESULT

GNEVALRESULT

Resultados do método de avaliação

CDEVALRESULT

GNEVALREVISION

ASEXECACTIVITY

Cadastro de execução de atividades

CDEXECACTIVITY

ADDOCUMENT

ASACTIVITY

ASPLANACTIVITY

ASSERVICECENTER

ASSERVICECENTERTEC

DCDOCREVISION

GNACTIVITY

GNFAVORITE

GNRESOURCE

GNTOOLSANALISYS

MAMAINTTYPE

ASPLANACTIVITY

Cadastro de plano de atividades

CDPLANACTIVITY

ADMAILTASKREL

ADTEAM

ASACTIVITY

GNCALENDAR

GNEVALRESULTUSED

GNEVALREVISION

MAROUTE

ASACTIVITY

Cadastro de atividades modelo

CDACTIVITY

ADAPPROVALROUTE

ADCHECKLIST

ADDOCUMENT

ADTEAM

ASACTIVMODELTYPE

ASSERVICECENTER

ASSERVICECENTERTEC

CACONFIGURATION

GNACTIVITYTIMECFG

GNCOSTCONFIG

GNEVALRESULTUSED

GNEVALREVISION

GNMASK

GNRESOURCE

MAMAINTTYPE

SERICHTEXT

ASEXECACTIVASSET

Associação de ativos na atividade

CDEXECACTIVASSET

ASEXECACTIVITY

OBOBJECTGROUP

OBOBJECT

Cadastro de dados do item/ativo/insumo por revisão

CDOBJECT

CDREVISION

ADTEAM

GNASSOC

GNREVISION

OBOBJECTGROUP

OBSUBREASON

OBOBJECTGROUP

Cadastro de item/ativo/insumo

CDOBJECTGROUP

GNFAVORITE

OBOBJECTTYPE

Cadastro de tipo de item/ativo/insumo

CDOBJECTTYPE

ADMEASUNITY

ADTEAM

GNMASK

GNREVCONFIG

GNTYPEROLE

ASASSET

Cadastros de ativos

CDASSET

CDREVISION

ADCHECKLIST

ADCOMPANY

ADTEAM

ASCONTROLS

ASDEPRECIATION

ASGENCONFIG

ASSTATE

DCDOCUMENT

ASSERVICECENTER

Cadastro de centro de serviço

CDSERVICECENTER

GNCALENDAR

GNRESOURCE

Cadastro de recursos

CDRESOURCE

ADALLUSERS

ADCOMPANY

GNASSOC

GNCALENDAR

GNRESOURCETYPE

OBOBJECTGROUP

MAMAINTTYPE

Cadastro de tipo de manutenção

CDMAINTTYPE


ADTEAM

Cadastro de equipe

CDTEAM

ADAUTHLDAPCONFIG

GNMAPPING

GNPERMISSION

ADALLUSERS

Usuário

CDUSER

ADALLUSERS

ADUSEREXTERNALDATA

GNFAVORITE

GNASSOCATTACH

Anexo

CDASSOCATTACH

ADATTACHMENT

GNASSOC

 

GNCALENDARWORKDAY

Dias úteis

CDCALENDAR

DTDAY


ADPARAMS

Parâmetros gerais

CDISOSYSTEM

CDPARAM

 


 

Oracle

SELECT
   GNACT.IDACTIVITY,
   CUSTOM_GNACT.FGDEADLINE,
   CUSTOM_GNACT.DTDEADLINE,
   GNEVRESULT.NMEVALRESULT,
   COALESCE(GNEVRESULTUSED.VLEVALRESULT, CAST( -999 AS NUMERIC(18,8) ) ) VLMINRESULT,
   (SELECT IDUSER || ' - ' || NMUSER FROM ADUSER WHERE CDUSER = GNACT.CDUSER) AS NMEXECUTOR,
   GNACT.FGSTATUS,
   CASE
      WHEN EXISTS (SELECT 1 FROM GNASSOCATTACH GNATTACH WHERE GNAT-TACH.CDASSOC = GNACT.CDASSOC ) THEN 1
      ELSE 0
   END AS FGATTACHMENT,
   ASEXECACT.FGACTTYPE,
   CASE
      WHEN ASEXECACT.FGMULTIPLEASSET = 2 THEN OBOBJ.IDOBJECT || ' - ' || OBOBJ.NMOBJECT
      WHEN ASEXECACT.FGMULTIPLEASSET = 1 THEN 'Múltiplos ativos'
      ELSE NULL
   END VIEW_EXECASSETS,
   EXEC_ASPLANACT.IDPLANACTIVITY,
   EXEC_ASPLANACT.NMPLANACTIVITY,
   CASE
      WHEN EXEC_ASPLANACT.CDTEAM IS NOT NULL THEN PLANTEAM.IDTEAM || ' - ' || PLANTEAM.NMTEAM
      ELSE NULL
   END AS VIEW_PLANTEAM,
   ASACTMODEL.IDACTIVITY IDACTIVITYMODEL,
   ASACTMODEL.NMACTIVITY NMACTIVITYMODEL,
   ALIAS_MAMAINTTYPE.IDMAINTTYPE,
   ALIAS_MAMAINTTYPE.NMMAINTTYPE,
   CASE
      WHEN ASSRVCNTR.CDSERVICECENTER IS NOT NULL THEN ASSRVC-NTR.IDCOMMERCIAL || ' - ' || ASSRVCNTR.NMCOMPANY
      ELSE NULL
   END NMSERVICECENTER,
   CASE
      WHEN GNRV.IDRESOURCE IS NOT NULL THEN GNRV.IDRESOURCE || ' - ' || GNRV.NMRESOURCE
      ELSE ''
   END AS NMRESOURCERESP,
   GNACT.DTSTARTPLAN,
   GNACT.DTSTART,
   GNACT.DTFINISHPLAN,
   GNACT.DTFINISH,
   (SELECT
      CASE
         WHEN VLPARAM = 1 THEN
         CASE
            WHEN DTFINISH > DTFINISHPLAN THEN TO_DATE(DTFINISH, 'yyyy-mm-dd') - TO_DATE(DTFINISHPLAN, 'yyyy-mm-dd')
            ELSE TO_DATE(DTFINISHPLAN, 'yyyy-mm-dd') - TO_DATE(DTFINISH, 'yyyy-mm-dd')
         END
         ELSE (
            SELECT
               COUNT1 ) - 1
            FROM GNCALENDARWORKDAY
            WHERE
               CDCALENDAR = (
                  SELECT
                     CASE
                        WHEN VLPARAM = 1 THEN 0
                        WHEN VLPARAM = 2 THEN (SELECT MAX(CDCALENDAR) CDCALENDAR FROM GNCALENDAR WHERE FGDEFAULT = 1)
                        ELSE (SELECT MAX(CDCALENDAR) FROM GNRESOURCE WHERE CDASSET = OBOBJ.CDOBJECT)
                     END AS CDCALENDARIOATIVO
                  FROM ADPARAMS
                  WHERE
                     CDISOSYSTEM = 109
                     AND CDPARAM = 257
               )
               AND (
                  DTDAY <= DTFINISHPLAN AND DTDAY >= DTFINISH
                  OR DTDAY <= DTFINISH AND DTDAY >= DTFI-NISHPLAN
               )
         )
      END QTDTFINISHDIFF
   FROM ADPARAMS
   WHERE
      CDISOSYSTEM = 109
      AND CDPARAM = 257
   ) QTDTFINISHDIFF, /*OBS 1*/
   GNACT.VLPERCENTAGEM,
   GNACT.QTMINUTESPLAN,
   GNACT.QTMINUTESREAL,
   CASE
      WHEN GNACT.QTMINUTESPLAN IS NULL THEN NULL
      WHEN GNACT.QTMINUTESREAL IS NULL THEN NULL
      ELSE (GNACT.QTMINUTESREAL - GNACT.QTMINUTESPLAN)
   END AS QTMINUTESDIFF,
   GNCOSTCFG.MNCOSTPROGTEC,
   GNCOSTCFG.MNCOSTREALTEC,
   GNCOSTCFG.MNCOSTREALTEC - GNCOSTCFG.MNCOSTPROGTEC AS VIEW_MNCOSTDIFFTEC,
   GNCOSTCFG.MNCOSTPROGMAT,
   GNCOSTCFG.MNCOSTREALMAT,
   GNCOSTCFG.MNCOSTREALMAT - GNCOSTCFG.MNCOSTPROGMAT AS VIEW_MNCOSTDIFFMAT,
   GNCOSTCFG.MNCOSTPROGASSET,
   GNCOSTCFG.MNCOSTREALASSET,
   GNCOSTCFG.MNCOSTREALASSET - GNCOSTCFG.MNCOSTPROGASSET AS VIEW_MNCOSTDIFFASSET,
   GNCOSTCFG.MNCOSTPROGTASK,
   GNCOSTCFG.MNCOSTREALTASK,
   GNCOSTCFG.MNCOSTREALTASK - GNCOSTCFG.MNCOSTPROGTASK AS VIEW_MNCOSTDIFFTASK,
   GNCOSTCFG.MNCOSTPROGEXTRA,
   GNCOSTCFG.MNCOSTREALEXTRA,
   GNCOSTCFG.MNCOSTREALEXTRA - GNCOSTCFG.MNCOSTPROGEXTRA AS VIEW_MNCOSTDIFFEXTRA,
   GNCOSTCFG.MNCOSTPROG,
   GNCOSTCFG.MNCOSTREAL,
   GNCOSTCFG.MNCOSTREAL - GNCOSTCFG.MNCOSTPROG AS VIEW_MNCOSTDIFF
FROM GNACTIVITY GNACT
   INNER JOIN (
      SELECT
         TEMP_ACT.CDGENACTIVITY,
         CASE
            WHEN TEMP_ACT.FGSTATUS = 1 OR TEMP_ACT.FGSTATUS = 2 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NOT NULL AND TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN 3
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTSTARTPLAN >= trunc(sysdate)) THEN 1
               END
            WHEN TEMP_ACT.FGSTATUS = 3 OR TEMP_ACT.FGSTATUS = 13 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTART IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN 3
                        WHEN (TEMP_ACT.DTSTARTPLAN > trunc(sysdate)) THEN 1
                        ELSE 2
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN < trunc(sysdate)) THEN 3
                        WHEN (TEMP_ACT.DTFINISHPLAN > trunc(sysdate)) THEN 1
                        ELSE 2
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NOT NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN 1
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH > TEMP_ACT.DTFINISHPLAN) THEN 3
                        ELSE 2
                     END
               END
            WHEN TEMP_ACT.FGSTATUS = 5 OR TEMP_ACT.FGSTATUS = 4 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN 1
                  ELSE 3
               END
         END FGDEADLINE,
         CASE
            WHEN TEMP_ACT.FGSTATUS = 1 OR TEMP_ACT.FGSTATUS = 2 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NOT NULL AND TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTSTARTPLAN >= trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
               END
            WHEN TEMP_ACT.FGSTATUS = 3 OR TEMP_ACT.FGSTATUS = 13 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTART IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
                        WHEN (TEMP_ACT.DTSTARTPLAN > trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
                        ELSE TEMP_ACT.DTSTARTPLAN
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN < trunc(sysdate)) THEN TEMP_ACT.DTFINISHPLAN
                        WHEN (TEMP_ACT.DTFINISHPLAN > trunc(sysdate)) THEN TEMP_ACT.DTFINISHPLAN
                        ELSE TEMP_ACT.DTFINISHPLAN
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NOT NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTFINISHPLAN
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH > TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTFINISHPLAN
                        ELSE NULL
                     END
               END
            WHEN TEMP_ACT.FGSTATUS = 5 OR TEMP_ACT.FGSTATUS = 4 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTSTARTPLAN
                  ELSE TEMP_ACT.DTSTARTPLAN
               END
         END DTDEADLINE
      FROM GNACTIVITY TEMP_ACT
   ) CUSTOM_GNACT ON ( CUSTOM_GNACT.CDGENACTIVITY = GNACT.CDGENACTIVITY )
   INNER JOIN GNCOSTCONFIG GNCOSTCFG ON ( GNCOSTCFG.CDCOSTCONFIG = GNACT.CDCOSTCONFIG )
   LEFT JOIN GNEVALRESULTUSED GNEVRESULTUSED ON ( GNEVRESULTU-SED.CDEVALRESULTUSED = GNACT.CDEVALRSLTPRIORITY )
   LEFT JOIN GNEVALRESULT GNEVRESULT ON ( GNEVRESULT.CDEVALRESULT = GNEVRE-SULTUSED.CDEVALRESULT )
   INNER JOIN ASEXECACTIVITY ASEXECACT ON ( ASEXECACT.CDGENACTIVITY = GNACT.CDGENACTIVITY )
   LEFT JOIN ASPLANACTIVITY EXEC_ASPLANACT ON ( EXEC_ASPLANACT.CDPLANACTIVITY = ASEXECACT.CDPLANNING )
   INNER JOIN ASACTIVITY ASACTMODEL ON ( ASACTMODEL.CDACTIVITY = ASEXE-CACT.CDACTIVITY )
   LEFT JOIN ASEXECACTIVASSET ASEXECACTAST ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND ASEXECACT.CDEXECACTIVITY = ASEXECACTAST.CDEXECACTIVITY )
   LEFT JOIN OBOBJECT OBOBJ ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND ASEXE-CACTAST.CDASSET = OBOBJ.CDOBJECT AND OBOBJ.FGCURRENT = 1 )
   LEFT JOIN OBOBJECTGROUP OBJGRP ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBJGRP.CDOBJECTGROUP = OBOBJ.CDOBJECT )
   LEFT JOIN OBOBJECTTYPE OBJTYPE ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBJTYPE.CDOBJECTTYPE = OBJGRP.CDOBJECTTYPE )
   LEFT JOIN ASASSET ASAST ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBOBJ.CDREVISION = ASAST.CDREVISION AND ASEXECACTAST.CDASSET = ASAST.CDASSET )
   LEFT JOIN ASSERVICECENTER ASSRVCNTR ON ( ASSRVCNTR.CDSERVICECENTER = ASEXECACT.CDSERVICECENTERE )
   LEFT JOIN GNRESOURCE GNRV ON ( GNRV.CDRESOURCE = ASEXE-CACT.CDRESOURCERESP )
   LEFT JOIN MAMAINTTYPE ALIAS_MAMAINTTYPE ON ( ALI-AS_MAMAINTTYPE.CDMAINTTYPE = ASEXECACT.CDACTIVCLASS )
   LEFT JOIN ADTEAM PLANTEAM ON ( EXEC_ASPLANACT.CDTEAM = PLANTEAM.CDTEAM )
WHERE (
      GNACT.CDISOSYSTEM IN (126AND ASEXECACT.FGACTTYPE IN (2,6,7,8/*OBS 2*/
   ) AND EXISTS (
      SELECT 1
      FROM ASEXECACTIVASSET CHKEXECACT
         INNER JOIN ASASSET CHKAST ON (CHKAST.CDASSET = CHKEXE-CACT.CDASSET)
         INNER JOIN OBOBJECT CHKOBJ ON (CHKOBJ.CDOBJECT = CHKAST.CDASSET AND CHKOBJ.CDREVISION = CHKAST.CDREVISION)
         INNER JOIN OBOBJECTGROUP CHKOBJGRP ON (CHKO-BJGRP.CDOBJECTGROUP = CHKOBJ.CDOBJECT)
         INNER JOIN OBOBJECTTYPE CHKOBJTYPE ON (CHKO-BJTYPE.CDOBJECTTYPE = CHKOBJGRP.CDOBJECTTYPE)
      WHERE
         CHKEXECACT.CDEXECACTIVITY = ASEXECACT.CDEXECACTIVITY
         AND CHKOBJ.FGCURRENT = 1
         AND CHKAST.FGASSTATUS <> 4
   ) AND GNACT.FGSTATUS IN (1,2,3,4,5,13/*OBS 3*/

 

Postgres

SELECT
   GNACT.IDACTIVITY,
   CUSTOM_GNACT.FGDEADLINE,
   CUSTOM_GNACT.DTDEADLINE,
   GNEVRESULT.NMEVALRESULT,
   COALESCE(GNEVRESULTUSED.VLEVALRESULT, CAST( -999 AS NUMERIC(18,8) ) ) VLMINRESULT,
   (SELECT IDUSER || ' - ' || NMUSER FROM ADUSER WHERE CDUSER = GNACT.CDUSER) AS NMEXECUTOR,
   GNACT.FGSTATUS,
   CASE
      WHEN EXISTS (SELECT 1 FROM GNASSOCATTACH GNATTACH WHERE GNATTACH.CDASSOC = GNACT.CDASSOC ) THEN 1
      ELSE 0
   END AS FGATTACHMENT,
   ASEXECACT.FGACTTYPE,
   CASE
      WHEN ASEXECACT.FGMULTIPLEASSET = 2 THEN OBOBJ.IDOBJECT || ' - ' || OBOBJ.NMOBJECT
      WHEN ASEXECACT.FGMULTIPLEASSET = 1 THEN 'Múltiplos ativos'
      ELSE NULL
   END VIEW_EXECASSETS,
   EXEC_ASPLANACT.IDPLANACTIVITY,
   EXEC_ASPLANACT.NMPLANACTIVITY,
   CASE
      WHEN EXEC_ASPLANACT.CDTEAM IS NOT NULL THEN PLANTEAM.IDTEAM || ' - ' || PLANTEAM.NMTEAM
      ELSE NULL
   END AS VIEW_PLANTEAM,
   ASACTMODEL.IDACTIVITY IDACTIVITYMODEL,
   ASACTMODEL.NMACTIVITY NMACTIVITYMODEL,
   ALIAS_MAMAINTTYPE.IDMAINTTYPE,
   ALIAS_MAMAINTTYPE.NMMAINTTYPE,
   CASE
      WHEN ASSRVCNTR.CDSERVICECENTER IS NOT NULL THEN ASSRVCNTR.IDCOMMERCIAL || ' - ' || ASSRVCNTR.NMCOMPANY
      ELSE NULL
   END NMSERVICECENTER,
   CASE
      WHEN GNRV.IDRESOURCE IS NOT NULL THEN GNRV.IDRESOURCE || ' - ' || GNRV.NMRESOURCE
      ELSE ''
   END AS NMRESOURCERESP,
   GNACT.DTSTARTPLAN,
   GNACT.DTSTART,
   GNACT.DTFINISHPLAN,
   GNACT.DTFINISH,
   (SELECT
      CASE
         WHEN VLPARAM = 1 THEN
         CASE
            WHEN DTFINISH > DTFINISHPLAN THEN TO_DATE(DTFINISH, 'yyyy-mm-dd') - TO_DATE(DTFINISHPLAN, 'yyyy-mm-dd')
            ELSE TO_DATE(DTFINISHPLAN, 'yyyy-mm-dd') - TO_DATE(DTFINISH, 'yyyy-mm-dd')
         END
         ELSE (
            SELECT
               COUNT1 ) - 1
            FROM GNCALENDARWORKDAY
            WHERE
               CDCALENDAR = (
                  SELECT
                     CASE
                        WHEN VLPARAM = 1 THEN 0
                        WHEN VLPARAM = 2 THEN (SELECT MAX(CDCALENDAR) CDCALENDAR FROM GNCALENDAR WHERE FGDEFAULT = 1)
                        ELSE (SELECT MAX(CDCALENDAR) FROM GNRESOURCE WHERE CDASSET = OBOBJ.CDOBJECT)
                     END AS CDCALENDARIOATIVO
                  FROM ADPARAMS
                  WHERE
                     CDISOSYSTEM = 109
                     AND CDPARAM = 257
               )
               AND (
                  DTDAY <= DTFINISHPLAN AND DTDAY >= DTFINISH
                  OR DTDAY <= DTFINISH AND DTDAY >= DTFINISHPLAN
               )
         )
      END QTDTFINISHDIFF
   FROM ADPARAMS
   WHERE
      CDISOSYSTEM = 109
      AND CDPARAM = 257
   ) QTDTFINISHDIFF, /*OBS 1*/
   GNACT.VLPERCENTAGEM,
   GNACT.QTMINUTESPLAN,
   GNACT.QTMINUTESREAL,
   CASE
      WHEN GNACT.QTMINUTESPLAN IS NULL THEN NULL
      WHEN GNACT.QTMINUTESREAL IS NULL THEN NULL
      ELSE (GNACT.QTMINUTESREAL - GNACT.QTMINUTESPLAN)
   END AS QTMINUTESDIFF,
   GNCOSTCFG.MNCOSTPROGTEC,
   GNCOSTCFG.MNCOSTREALTEC,
   GNCOSTCFG.MNCOSTREALTEC - GNCOSTCFG.MNCOSTPROGTEC AS VIEW_MNCOSTDIFFTEC,
   GNCOSTCFG.MNCOSTPROGMAT,
   GNCOSTCFG.MNCOSTREALMAT,
   GNCOSTCFG.MNCOSTREALMAT - GNCOSTCFG.MNCOSTPROGMAT AS VIEW_MNCOSTDIFFMAT,
   GNCOSTCFG.MNCOSTPROGASSET,
   GNCOSTCFG.MNCOSTREALASSET,
   GNCOSTCFG.MNCOSTREALASSET - GNCOSTCFG.MNCOSTPROGASSET AS VIEW_MNCOSTDIFFASSET,
   GNCOSTCFG.MNCOSTPROGTASK,
   GNCOSTCFG.MNCOSTREALTASK,
   GNCOSTCFG.MNCOSTREALTASK - GNCOSTCFG.MNCOSTPROGTASK AS VIEW_MNCOSTDIFFTASK,
   GNCOSTCFG.MNCOSTPROGEXTRA,
   GNCOSTCFG.MNCOSTREALEXTRA,
   GNCOSTCFG.MNCOSTREALEXTRA - GNCOSTCFG.MNCOSTPROGEXTRA AS VIEW_MNCOSTDIFFEXTRA,
   GNCOSTCFG.MNCOSTPROG,
   GNCOSTCFG.MNCOSTREAL,
   GNCOSTCFG.MNCOSTREAL - GNCOSTCFG.MNCOSTPROG AS VIEW_MNCOSTDIFF
FROM GNACTIVITY GNACT
   INNER JOIN (
      SELECT
         TEMP_ACT.CDGENACTIVITY,
         CASE
            WHEN TEMP_ACT.FGSTATUS = 1 OR TEMP_ACT.FGSTATUS = 2 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NOT NULL AND TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN 3
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTSTARTPLAN >= trunc(sysdate)) THEN 1
               END
            WHEN TEMP_ACT.FGSTATUS = 3 OR TEMP_ACT.FGSTATUS = 13 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTART IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN 3
                        WHEN (TEMP_ACT.DTSTARTPLAN > trunc(sysdate)) THEN 1
                        ELSE 2
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN < trunc(sysdate)) THEN 3
                        WHEN (TEMP_ACT.DTFINISHPLAN > trunc(sysdate)) THEN 1
                        ELSE 2
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NOT NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN 1
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH > TEMP_ACT.DTFINISHPLAN) THEN 3
                        ELSE 2
                     END
               END
            WHEN TEMP_ACT.FGSTATUS = 5 OR TEMP_ACT.FGSTATUS = 4 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN 1
                  ELSE 3
               END
         END FGDEADLINE,
         CASE
            WHEN TEMP_ACT.FGSTATUS = 1 OR TEMP_ACT.FGSTATUS = 2 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NOT NULL AND TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTSTARTPLAN >= trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
               END
            WHEN TEMP_ACT.FGSTATUS = 3 OR TEMP_ACT.FGSTATUS = 13 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTART IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTSTARTPLAN < trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
                        WHEN (TEMP_ACT.DTSTARTPLAN > trunc(sysdate)) THEN TEMP_ACT.DTSTARTPLAN
                        ELSE TEMP_ACT.DTSTARTPLAN
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN < trunc(sysdate)) THEN TEMP_ACT.DTFINISHPLAN
                        WHEN (TEMP_ACT.DTFINISHPLAN > trunc(sysdate)) THEN TEMP_ACT.DTFINISHPLAN
                        ELSE TEMP_ACT.DTFINISHPLAN
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NOT NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTFINISHPLAN
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH > TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTFINISHPLAN
                        ELSE NULL
                     END
               END
            WHEN TEMP_ACT.FGSTATUS = 5 OR TEMP_ACT.FGSTATUS = 4 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTSTARTPLAN
                  ELSE TEMP_ACT.DTSTARTPLAN
               END
         END DTDEADLINE
      FROM GNACTIVITY TEMP_ACT
   ) CUSTOM_GNACT ON ( CUSTOM_GNACT.CDGENACTIVITY = GNACT.CDGENACTIVITY )
   INNER JOIN GNCOSTCONFIG GNCOSTCFG ON ( GNCOSTCFG.CDCOSTCONFIG = GNACT.CDCOSTCONFIG )
   LEFT JOIN GNEVALRESULTUSED GNEVRESULTUSED ON ( GNEVRESULTUSED.CDEVALRESULTUSED = GNACT.CDEVALRSLTPRIORITY )
   LEFT JOIN GNEVALRESULT GNEVRESULT ON ( GNEVRESULT.CDEVALRESULT = GNEVRESULTUSED.CDEVALRESULT )
   INNER JOIN ASEXECACTIVITY ASEXECACT ON ( ASEXECACT.CDGENACTIVITY = GNACT.CDGENACTIVITY )
   LEFT JOIN ASPLANACTIVITY EXEC_ASPLANACT ON ( EXEC_ASPLANACT.CDPLANACTIVITY = ASEXECACT.CDPLANNING )
   INNER JOIN ASACTIVITY ASACTMODEL ON ( ASACTMODEL.CDACTIVITY = ASEXECACT.CDACTIVITY )
   LEFT JOIN ASEXECACTIVASSET ASEXECACTAST ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND ASEXECACT.CDEXECACTIVITY = ASEXECACTAST.CDEXECACTIVITY )
   LEFT JOIN OBOBJECT OBOBJ ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND ASEXECACTAST.CDASSET = OBOBJ.CDOBJECT AND OBOBJ.FGCURRENT = 1 )
   LEFT JOIN OBOBJECTGROUP OBJGRP ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBJGRP.CDOBJECTGROUP = OBOBJ.CDOBJECT )
   LEFT JOIN OBOBJECTTYPE OBJTYPE ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBJTYPE.CDOBJECTTYPE = OBJGRP.CDOBJECTTYPE )
   LEFT JOIN ASASSET ASAST ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBOBJ.CDREVISION = ASAST.CDREVISION AND ASEXECACTAST.CDASSET = ASAST.CDASSET )
   LEFT JOIN ASSERVICECENTER ASSRVCNTR ON ( ASSRVCNTR.CDSERVICECENTER = ASEXECACT.CDSERVICECENTERE )
   LEFT JOIN GNRESOURCE GNRV ON ( GNRV.CDRESOURCE = ASEXECACT.CDRESOURCERESP )
   LEFT JOIN MAMAINTTYPE ALIAS_MAMAINTTYPE ON ( ALIAS_MAMAINTTYPE.CDMAINTTYPE = ASEXECACT.CDACTIVCLASS )
   LEFT JOIN ADTEAM PLANTEAM ON ( EXEC_ASPLANACT.CDTEAM = PLANTEAM.CDTEAM )
WHERE (
      GNACT.CDISOSYSTEM IN (126AND ASEXECACT.FGACTTYPE IN (2,6,7,8/*OBS 2*/
   ) AND EXISTS (
      SELECT 1
      FROM ASEXECACTIVASSET CHKEXECACT
         INNER JOIN ASASSET CHKAST ON (CHKAST.CDASSET = CHKEXECACT.CDASSET)
         INNER JOIN OBOBJECT CHKOBJ ON (CHKOBJ.CDOBJECT = CHKAST.CDASSET AND CHKOBJ.CDREVISION = CHKAST.CDREVISION)
         INNER JOIN OBOBJECTGROUP CHKOBJGRP ON (CHKOBJGRP.CDOBJECTGROUP = CHKOBJ.CDOBJECT)
         INNER JOIN OBOBJECTTYPE CHKOBJTYPE ON (CHKOBJTYPE.CDOBJECTTYPE = CHKOBJGRP.CDOBJECTTYPE)
      WHERE
         CHKEXECACT.CDEXECACTIVITY = ASEXECACT.CDEXECACTIVITY
         AND CHKOBJ.FGCURRENT = 1
         AND CHKAST.FGASSTATUS <> 4
   ) AND GNACT.FGSTATUS IN (1,2,3,4,5,13/*OBS 3*/

 

SQL Server

SELECT
   GNACT.IDACTIVITY,
   CUSTOM_GNACT.FGDEADLINE,
   CUSTOM_GNACT.DTDEADLINE,
   GNEVRESULT.NMEVALRESULT,
   COALESCE(GNEVRESULTUSED.VLEVALRESULT, CAST( -999 AS NUMERIC(18,8) ) ) VLMINRESULT,
   (SELECT IDUSER + ' - ' + NMUSER FROM ADUSER WHERE CDUSER = GNACT.CDUSER) AS NMEXECUTOR,
   GNACT.FGSTATUS,
   CASE
      WHEN EXISTS (SELECT 1 FROM GNASSOCATTACH GNATTACH WHERE GNATTACH.CDASSOC = GNACT.CDASSOC ) THEN 1
      ELSE 0
   END AS FGATTACHMENT,
   ASEXECACT.FGACTTYPE,
   CASE
      WHEN ASEXECACT.FGMULTIPLEASSET = 2 THEN OBOBJ.IDOBJECT + ' - ' + OBOBJ.NMOBJECT
      WHEN ASEXECACT.FGMULTIPLEASSET = 1 THEN 'Múltiplos ativos'
      ELSE NULL
   END VIEW_EXECASSETS,
   EXEC_ASPLANACT.IDPLANACTIVITY,
   EXEC_ASPLANACT.NMPLANACTIVITY,
   CASE
      WHEN EXEC_ASPLANACT.CDTEAM IS NOT NULL THEN PLANTEAM.IDTEAM + ' - ' + PLANTEAM.NMTEAM
      ELSE NULL
   END AS VIEW_PLANTEAM,
   ASACTMODEL.IDACTIVITY IDACTIVITYMODEL,
   ASACTMODEL.NMACTIVITY NMACTIVITYMODEL,
   ALIAS_MAMAINTTYPE.IDMAINTTYPE,
   ALIAS_MAMAINTTYPE.NMMAINTTYPE,
   CASE
      WHEN ASSRVCNTR.CDSERVICECENTER IS NOT NULL THEN ASSRVCNTR.IDCOMMERCIAL + ' - ' + ASSRVCNTR.NMCOMPANY
      ELSE NULL
   END NMSERVICECENTER,
   CASE
      WHEN GNRV.IDRESOURCE IS NOT NULL THEN GNRV.IDRESOURCE +' - '+ GNRV.NMRESOURCE
      ELSE ''
   END AS NMRESOURCERESP,
   GNACT.DTSTARTPLAN,
   GNACT.DTSTART,
   GNACT.DTFINISHPLAN,
   GNACT.DTFINISH,
   (SELECT
      CASE
         WHEN VLPARAM = 1 THEN
         CASE
            WHEN DTFINISH > DTFINISHPLAN THEN DATEDIFF(DAYCAST(DTFINISHPLAN AS DATETIME), CAST(DTFINISH AS DATETIME))
            ELSE DATEDIFF(DAYCAST(DTFINISH AS DATETIME), CAST(DTFINISHPLAN AS DATETIME))
         END
         ELSE (
            SELECT
               COUNT1 ) - 1
            FROM GNCALENDARWORKDAY
            WHERE
               CDCALENDAR = (
                  SELECT
                     CASE
                        WHEN VLPARAM = 1 THEN 0
                        WHEN VLPARAM = 2 THEN (SELECT MAX(CDCALENDAR) CDCALENDAR FROM GNCALENDAR WHERE FGDEFAULT = 1)
                        ELSE (SELECT MAX(CDCALENDAR) FROM GNRESOURCE WHERE CDASSET = OBOBJ.CDOBJECT)
                     END AS CDCALENDARIOATIVO
                  FROM ADPARAMS
                  WHERE
                     CDISOSYSTEM = 109
                     AND CDPARAM = 257
               )
               AND (
                  DTDAY <= DTFINISHPLAN AND DTDAY >= DTFINISH
                  OR DTDAY <= DTFINISH AND DTDAY >= DTFINISHPLAN
               )
         )
      END QTDTFINISHDIFF
   FROM ADPARAMS
   WHERE
      CDISOSYSTEM = 109
      AND CDPARAM = 257
   ) QTDTFINISHDIFF, /*OBS 1*/
   GNACT.VLPERCENTAGEM,
   GNACT.QTMINUTESPLAN,
   GNACT.QTMINUTESREAL,
   CASE
      WHEN GNACT.QTMINUTESPLAN IS NULL THEN NULL
      WHEN GNACT.QTMINUTESREAL IS NULL THEN NULL
      ELSE (GNACT.QTMINUTESREAL - GNACT.QTMINUTESPLAN)
   END AS QTMINUTESDIFF,
   GNCOSTCFG.MNCOSTPROGTEC,
   GNCOSTCFG.MNCOSTREALTEC,
   GNCOSTCFG.MNCOSTREALTEC - GNCOSTCFG.MNCOSTPROGTEC AS VIEW_MNCOSTDIFFTEC,
   GNCOSTCFG.MNCOSTPROGMAT,
   GNCOSTCFG.MNCOSTREALMAT,
   GNCOSTCFG.MNCOSTREALMAT - GNCOSTCFG.MNCOSTPROGMAT AS VIEW_MNCOSTDIFFMAT,
   GNCOSTCFG.MNCOSTPROGASSET,
   GNCOSTCFG.MNCOSTREALASSET,
   GNCOSTCFG.MNCOSTREALASSET - GNCOSTCFG.MNCOSTPROGASSET AS VIEW_MNCOSTDIFFASSET,
   GNCOSTCFG.MNCOSTPROGTASK,
   GNCOSTCFG.MNCOSTREALTASK,
   GNCOSTCFG.MNCOSTREALTASK - GNCOSTCFG.MNCOSTPROGTASK AS VIEW_MNCOSTDIFFTASK,
   GNCOSTCFG.MNCOSTPROGEXTRA,
   GNCOSTCFG.MNCOSTREALEXTRA,
   GNCOSTCFG.MNCOSTREALEXTRA - GNCOSTCFG.MNCOSTPROGEXTRA AS VIEW_MNCOSTDIFFEXTRA,
   GNCOSTCFG.MNCOSTPROG,
   GNCOSTCFG.MNCOSTREAL,
   GNCOSTCFG.MNCOSTREAL - GNCOSTCFG.MNCOSTPROG AS VIEW_MNCOSTDIFF
FROM GNACTIVITY GNACT
   INNER JOIN (
      SELECT
         TEMP_ACT.CDGENACTIVITY,
         CASE
            WHEN TEMP_ACT.FGSTATUS = 1 OR TEMP_ACT.FGSTATUS = 2 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NOT NULL AND TEMP_ACT.DTSTARTPLAN < dateadd(dd, datediff(dd,0, getDate()), 0)) THEN 3
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTSTARTPLAN >= dateadd(dd, datediff(dd,0, getDate()), 0)) THEN 1
               END
            WHEN TEMP_ACT.FGSTATUS = 3 OR TEMP_ACT.FGSTATUS = 13 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTART IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTSTARTPLAN < dateadd(dd, datediff(dd,0, getDate()), 0)) THEN 3
                        WHEN (TEMP_ACT.DTSTARTPLAN > dateadd(dd, datediff(dd,0, getDate()), 0)) THEN 1
                        ELSE 2
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN < dateadd(dd, datediff(dd,0, getDate()), 0)) THEN 3
                        WHEN (TEMP_ACT.DTFINISHPLAN > dateadd(dd, datediff(dd,0, getDate()), 0)) THEN 1
                        ELSE 2
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NOT NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN 1
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH > TEMP_ACT.DTFINISHPLAN) THEN 3
                        ELSE 2
                     END
               END
            WHEN TEMP_ACT.FGSTATUS = 5 OR TEMP_ACT.FGSTATUS = 4 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN 1
                  ELSE 3
               END
         END FGDEADLINE,
         CASE
            WHEN TEMP_ACT.FGSTATUS = 1 OR TEMP_ACT.FGSTATUS = 2 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NOT NULL AND TEMP_ACT.DTSTARTPLAN < dateadd(dd, datediff(dd,0, getDate()), 0)) THEN TEMP_ACT.DTSTARTPLAN
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTSTARTPLAN >= dateadd(dd, datediff(dd,0, getDate()), 0)) THEN TEMP_ACT.DTSTARTPLAN
               END
            WHEN TEMP_ACT.FGSTATUS = 3 OR TEMP_ACT.FGSTATUS = 13 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTART IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTSTARTPLAN < dateadd(dd, datediff(dd,0, getDate()), 0)) THEN TEMP_ACT.DTSTARTPLAN
                        WHEN (TEMP_ACT.DTSTARTPLAN > dateadd(dd, datediff(dd,0, getDate()), 0)) THEN TEMP_ACT.DTSTARTPLAN
                        ELSE TEMP_ACT.DTSTARTPLAN
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN < dateadd(dd, datediff(dd,0, getDate()), 0)) THEN TEMP_ACT.DTFINISHPLAN
                        WHEN (TEMP_ACT.DTFINISHPLAN > dateadd(dd, datediff(dd,0, getDate()), 0)) THEN TEMP_ACT.DTFINISHPLAN
                        ELSE TEMP_ACT.DTFINISHPLAN
                     END
                  WHEN (TEMP_ACT.DTSTART IS NOT NULL AND TEMP_ACT.DTFINISH IS NOT NULLTHEN
                     CASE
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTFINISHPLAN
                        WHEN (TEMP_ACT.DTFINISHPLAN IS NOT NULL AND TEMP_ACT.DTFINISH > TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTFINISHPLAN
                        ELSE NULL
                     END
               END
            WHEN TEMP_ACT.FGSTATUS = 5 OR TEMP_ACT.FGSTATUS = 4 THEN
               CASE
                  WHEN (TEMP_ACT.DTSTARTPLAN IS NULL OR TEMP_ACT.DTFINISH <= TEMP_ACT.DTFINISHPLAN) THEN TEMP_ACT.DTSTARTPLAN
                  ELSE TEMP_ACT.DTSTARTPLAN
               END
         END DTDEADLINE
      FROM GNACTIVITY TEMP_ACT
   ) CUSTOM_GNACT ON ( CUSTOM_GNACT.CDGENACTIVITY = GNACT.CDGENACTIVITY )
   INNER JOIN GNCOSTCONFIG GNCOSTCFG ON ( GNCOSTCFG.CDCOSTCONFIG = GNACT.CDCOSTCONFIG )
   LEFT JOIN GNEVALRESULTUSED GNEVRESULTUSED ON ( GNEVRESULTUSED.CDEVALRESULTUSED = GNACT.CDEVALRSLTPRIORITY )
   LEFT JOIN GNEVALRESULT GNEVRESULT ON ( GNEVRESULT.CDEVALRESULT = GNEVRESULTUSED.CDEVALRESULT )
   INNER JOIN ASEXECACTIVITY ASEXECACT ON ( ASEXECACT.CDGENACTIVITY = GNACT.CDGENACTIVITY )
   LEFT JOIN ASPLANACTIVITY EXEC_ASPLANACT ON ( EXEC_ASPLANACT.CDPLANACTIVITY = ASEXECACT.CDPLANNING )
   INNER JOIN ASACTIVITY ASACTMODEL ON ( ASACTMODEL.CDACTIVITY = ASEXECACT.CDACTIVITY )
   LEFT JOIN ASEXECACTIVASSET ASEXECACTAST ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND ASEXECACT.CDEXECACTIVITY = ASEXECACTAST.CDEXECACTIVITY )
   LEFT JOIN OBOBJECT OBOBJ ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND ASEXECACTAST.CDASSET = OBOBJ.CDOBJECT AND OBOBJ.FGCURRENT = 1 )
   LEFT JOIN OBOBJECTGROUP OBJGRP ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBJGRP.CDOBJECTGROUP = OBOBJ.CDOBJECT )
   LEFT JOIN OBOBJECTTYPE OBJTYPE ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBJTYPE.CDOBJECTTYPE = OBJGRP.CDOBJECTTYPE )
   LEFT JOIN ASASSET ASAST ON ( ASEXECACT.FGMULTIPLEASSET = 2 AND OBOBJ.CDREVISION = ASAST.CDREVISION AND ASEXECACTAST.CDASSET = ASAST.CDASSET )
   LEFT JOIN ASSERVICECENTER ASSRVCNTR ON ( ASSRVCNTR.CDSERVICECENTER = ASEXECACT.CDSERVICECENTERE )
   LEFT JOIN GNRESOURCE GNRV ON ( GNRV.CDRESOURCE = ASEXECACT.CDRESOURCERESP )
   LEFT JOIN MAMAINTTYPE ALIAS_MAMAINTTYPE ON ( ALIAS_MAMAINTTYPE.CDMAINTTYPE = ASEXECACT.CDACTIVCLASS )
   LEFT JOIN ADTEAM PLANTEAM ON ( EXEC_ASPLANACT.CDTEAM = PLANTEAM.CDTEAM )
WHERE (
      GNACT.CDISOSYSTEM IN (126AND ASEXECACT.FGACTTYPE IN (2,6,7,8/*OBS 2*/
   ) AND EXISTS (
      SELECT 1
      FROM ASEXECACTIVASSET CHKEXECACT
         INNER JOIN ASASSET CHKAST ON (CHKAST.CDASSET = CHKEXECACT.CDASSET)
         INNER JOIN OBOBJECT CHKOBJ ON (CHKOBJ.CDOBJECT = CHKAST.CDASSET AND CHKOBJ.CDREVISION = CHKAST.CDREVISION)
         INNER JOIN OBOBJECTGROUP CHKOBJGRP ON (CHKOBJGRP.CDOBJECTGROUP = CHKOBJ.CDOBJECT)
         INNER JOIN OBOBJECTTYPE CHKOBJTYPE ON (CHKOBJTYPE.CDOBJECTTYPE = CHKOBJGRP.CDOBJECTTYPE)
      WHERE
         CHKEXECACT.CDEXECACTIVITY = ASEXECACT.CDEXECACTIVITY
         AND CHKOBJ.FGCURRENT = 1
         AND CHKAST.FGASSTATUS <> 4
   ) AND GNACT.FGSTATUS IN (1,2,3,4,5,13/*OBS 3*/

 

Observações

1: A diferença entra as datas de término é calculada de acordo com o parâmetro geral de fórmula de cálculo. Campo VLPARAM, definido desta maneira: 1 = Considera 24 por 7; 2 = Com base no calendário padrão do sistema; 3 = Com base no calendário associado ao ativo.

2: O campo FGACTTYPE da tabela ASEXECACTIVITY indica o tipo de atividade, definido desta maneira: 2 = Manutenção preventiva; 6 = Rota de manutenção; 7 = Manutenção programada; 8 = Manutenção corretiva.

3: O campo FGSTATUS da tabela GNACTIVITY indica a situação da atividade, definido desta maneira: 1 = Planejamento; 2 = Aprovação do planejamento; 3 = Execução; 4 = Aprovação da execução; 5 = Finalizado; 13 = A iniciar.

 

Campos utilizados na consulta

 

maintenance-01

 

maintenance-02

 

maintenance-03

 

 

maintenance-03_1

 

ID do campo

Tipo

Observação

1

IDACTIVITY

VARCHAR(50)

Identificador da atividade

2

FGDEADLINE

NUMERIC(2)

Prazo:

1- Em dia

2 - Em aviso

3 - Em atraso

3

NMEVALRESULT

VARCHAR(255)

Prioridade

4

NMEXECUTOR

VARCHAR(255)

Responsável

5

FGSTATUS

NUMERIC(2)

Situação:

1- Planejamento

2- Aprovação do planejamento

3- Execução

4- Aprovação da execução

5- Encerrada

6- Cancelada

8- Atividade reprovada

13- A iniciar

6

FGATTACHMENT

NUMERIC(2)

Contém anexo 1-Sim; 2-Não

7

FGACTTYPE

NUMERIC(2)

Tipo da atividade:

1- Verificação

2- Manutenção preventiva

3- Calibração

6- Rota de manutenção

7- Manutenção programada

8- Manutenção corretiva

8

VIEW_EXECASSET

VARCHAR(255)

Ativo

9

IDPLANACTIVITY

VARCHAR(50)

Identificador do plano

10

NMPLANACTIVITY

VARCHAR(255)

Nome do plano

11

VIEW_PLANTEAM

VARCHAR(255)

Equipe responsável

12

IDACTIVITYMODEL

VARCHAR(50)

Identificador da atividade modelo

13

NMACTIVITYMODEL

VARCHAR(255)

Nome da atividade modelo

14

IDMAINTTYPE

VARCHAR(50)

Identificador da classificação da atividade

15

NMMAINTTYPE

VARCHAR(255)

Nome da classificação da atividade

16

NMSERVICECENTER

VARCHAR(255)

Centro de serviço

17

NMRESOURCERESP

VARCHAR(255)

Técnico responsável

18

DTSTARTPLAN

DATETIME

Início planejado

19

DTSTART

DATETIME

Início real

20

DTFINISHPLAN

DATETIME

Término planejado

21

DTFINISH

DATETIME

Término real

22

QTDTFINISHDIFF

NUMERIC(10)

Diferença entre as datas de término

23

VLPERCENTAGEM

NUMERIC(28,12)

Porcentagem

24

QTMINUTESPLAN

NUMERIC(10)

Duração planejada em minutos

25

QTMINUTESREAL

NUMERIC(10)

Duração real em minutos

26

QTMINUTESDIFF

NUMERIC(10)

Diferença entre duração real e planejada

27

MNCOSTPROGTEC

NUMERIC(28,12)

Custo total planejado dos técnicos alocados

28

MNCOSTREALTEC

NUMERIC(28,12)

Custo total real dos técnicos alocados

29

VIEW_MNCOSTDIFFTEC

NUMERIC(28,12)

Diferença entre o custo total planejado e o custo total real dos técnicos

30

MNCOSTPROGMAT

NUMERIC(28,12)

Custo total planejado dos insumos

31

MNCOSTREALMAT

NUMERIC(28,12)

Custo total real dos insumos

32

VIEW_MNCOSTDIFFMAT

NUMERIC(28,12)

Diferença entre o custo total planejado dos insumos e o custo total real dos insumos

33

MNCOSTPROGASSET

NUMERIC(28,12)

Custo total planejado dos ativos

34

MNCOSTREALASSET

NUMERIC(28,12)

Custo total real dos ativos

35

VIEW_MNCOSTDIFFASSET

NUMERIC(28,12)

Diferença entre o custo total planejado dos ativos e o custo total real dos ativos

36

MNCOSTPROGTASK

NUMERIC(28,12)

Custo total planejado das tarefas

37

MNCOSTREALTASK

NUMERIC(28,12)

Custo total real das tarefas

38

VIEW_MNCOSTDIFFTASK

NUMERIC(28,12)

Diferença entre o custo planejado das tarefas e o custo real das tarefas

39

MNCOSTPROGEXTRA

NUMERIC(28,12)

Custo total planejado extra

40

MNCOSTREALEXTRA

NUMERIC(28,12)

Custo total real extra

41

VIEW_MNCOSTDIFFEXTRA

NUMERIC(28,12)

Diferença entre o custo planejado extra e o custo real extra

42

MNCOSTPROG

NUMERIC(28,12)

Custo total planejado

43

MNCOSTREAL

NUMERIC(28,12)

Custo total real

44

VIEW_MNCOSTDIFF

NUMERIC(28,12)

Diferença entre o custo planejado e real