Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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.

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

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)

View solution in original post

4 Replies
Anonymous
Not applicable
Author

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)

Not applicable
Author

Olá Rodrigo,
No caso do concatenate no Qlikview, eu utilizo para as duas tabelas os mesmos apelidos né,  depois do 'As'?

Seria mais ou menos como um Union do SQL, é isso?

Desde já agradeço,
Juliana

Anonymous
Not applicable
Author

Sim... com isso unindo as duas tabelas...e usando o campo STATUS_ACIDENTE para diferenciá-las

Not applicable
Author

Rodrigo, muitoo obrigada!

Sua opinião foi ótima e funcionou como eu precisava;

Mais uma vez, muito obrigada.

Abs,

Juliana Holstein.