Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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)
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)
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
Sim... com isso unindo as duas tabelas...e usando o campo STATUS_ACIDENTE para diferenciá-las
Rodrigo, muitoo obrigada!
Sua opinião foi ótima e funcionou como eu precisava;
Mais uma vez, muito obrigada.
Abs,
Juliana Holstein.