4 Replies Latest reply: Jan 31, 2012 8:58 AM by Juliana Holstein RSS

    ajuda script

      Pessoal, boa tarde!

      Tenho o seguinte script:

       

      ACIDENTE:
      LOAD

           NUM(MONTH(DT_ACIDENTE)) &'-'&
           YEAR(DT_ACIDENTE)                       AS ACID_CHAVE_ANOMES_ACIDENTE,
           CAD                                                 AS ACID_CAD_FUNCIONARIO,
           NOME                                              AS ACID_NOME_FUNCIONARIO,
           SETOR                                             AS ACID_SETOR,  
           TURNO                                             AS ACID_TURNO,
           TIPO                                                 AS ACID_TIPO_ACIDENTE,
           LOCAL_LESAO                                 AS ACID_LOCAL_LESAO,
           DATE(DT_ACIDENTE)                        AS ACID_DT_ACIDENTE,
           DAY(DT_ACIDENTE)                          AS ACID_DT_DIA_ACIDENTE,
           MONTH(DT_ACIDENTE)                     AS ACID_DT_MES_ACIDENTE,
           YEAR(DT_ACIDENTE)                       AS ACID_DT_ANO_ACIDENTE,
           NUM(MONTH(DT_ACIDENTE))           AS ACID_NR_MES_ACIDENTE,
           MONTH(DT_ACIDENTE) & '/' &
           YEAR(DT_ACIDENTE)                      AS ACID_DT_MESANO_ACIDENTE,
           DIAS_AFAST_MES                          AS ACID_DIAS_AFASTAMENTO_MES,
           DIAS_AFAST                                   AS ACID_DIAS_AFAST,
           round(AFASTADO_MES,1)               AS ACID_DIAS_AFASTAMENTO,
           DIAS_UTEIS                                    AS ACID_DIAS_UTEIS_MES,    
           DATE(AFASTAMENTO)                    AS ACID_DT_AFASTAMENTO,
           DATE(RETORNO)                            AS ACID_DT_RETORNO, 
           SIT                                                 AS ACID_SITUACAO,
           DATA_CAT                                     AS ACID_DT_CAT,
           DESCAU                                        AS ACID_DESC_CAUSA_ACIDENTE,
           DESCRIÇÃO                                  AS ACID_DESCRICAO_ACIDENTE,
           NUM(MONTH(DT_ACIDENTE)) &'-'&
           YEAR(DT_ACIDENTE)       &'-'&
           TIPO                                              AS ACID_CHAVE_TIPO_ACIDENTE
      FROM C:\Qlikview\Producao\QVD\ACIDENTE.qvd (qvd);

       

      //************* TMP_ACIDENTES_ANTERIORES*********************
      TMP_ACIDENTES_ANTERIORES:
      LOAD NUM(MONTH(DT_ACID_ANTERIOR)) &'-'&
           YEAR(DT_ACID_ANTERIOR)       &'-'&
           DS_TIPO                             AS ACID_CHAVE_TIPO_ACIDENTE,
           DS_SETOR                         AS TMP_ACID_SETOR,                             
           DS_TURNO                         AS TMP_ACID_TURNO,
           CD_CAD                             AS TMP_ACID_CAD_FUNCIONARIO,
           DIAS_AFAST                      AS TMP_ACID_DIAS_AFAST  
      FROM C:\Qlikview\Producao\QVD\TMP_ACIDENTES_ANTERIORES.qvd (qvd);

       

      A tabela ACIDENTES são todos os acidentes que acontecem diariamente, com quebras por mes, ano, setor, turno e tipo de acidente.

      A tabela TMP_ACIDENTES ANTERIORES são todos os acidentes que continuam em aberto no ano/mes atual, mas a data de acidente é menor que a seleção que tenho (mes e ano).

       

       

      Para mostrar a quantidade de acidentes eu tenho uma tabela e no campo Acidentes: faço um count do cadastro do funcionario da tabela Acidentes,sendo que o usuário pode selecionar para ver a quantidade utilizando filtros de setor, mes, ano, tipo de acidente, turno.

       

      No campo Acidentes anteriores, eu dou um count da tabela tmp_Acidentes_anteriores, pois nesta tabela deixo armazenado o mes/ano em que os acidentes ficaram em aberto.
      Por exemplo 01/2012, tenho 12 acidentes em aberto de meses anteriores. Nesta tabela tambem tenho separações por turno, tipo de acidente, setor.

       

       

      Qual minha dúvida:

       

      Na tabela temporária de acidentes, eu posso ter um acidente em aberto de meses anteriores ao mes atual (01/2012) e este acidente anterior ser de um setor ou turno, que não teve registro de acidente atual (da tabela acidente).

       

      Com para filtro da tela eu uso o setor da tabela acidentes, quando faço o count da tabela de acidentes anteriores, o sistema não conta aquele acidente anterior, pois não tenho o setor para este mes e ano na tabela de acidentes.

       

      Como eu posso tratar esta questão? Alguém tem alguma dica?


      Desde já obrigada,

      Juliana Holstein.

        • Re: ajuda script
          rodrigo silvestre

          Olá Juliana,

           

          minha opinião de como resolveria isso e acredito que ficaria mais facil de trabalhar:

           

          *junte as duas tabelas, concatenando-as, e crie um campo com status do acidente (anterior, atual)

           

          ex:

           

          ACIDENTE:
          LOAD

               'ATUAL'                                                                                                        AS STATUS_ACIDENTE,

               NUM(MONTH(DT_ACIDENTE)) &'-'&   YEAR(DT_ACIDENTE)       AS ANOMES_ACIDENTE,
               CAD                                                                                                             AS FUNCIONARIO,

          [...]

           

          concatenate(ACIDENTE)

          LOAD

          'ANTERIOR'                                                                                              AS STATUS_ACIDENTE,  

          NUM(MONTH(DT_ACID_ANTERIOR)) &'-'&

          YEAR(DT_ACID_ANTERIOR)                                                             AS ANOMES_ACIDENTE,

          CD_CAD                                                                                                  AS FUNCIONARIO,

          [...]

           

           

           

           

          assim vc terá as informações anteriores e atuais juntas..e quando precisar usar somente uma delas... usa o campo STATUS_ACIDENTE no set analysis: ex: sum( {<STATUS_ACIDENTE  = {'ANTERIOR'}>} valor)