Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Saudações Pessoal, Tudo certo ?
Estou me batendo uns 2 dias para criar a seguinte situação:
Determinada carteira de sócios pode ter seu analista responsavel substituido ao decorrer de um periodo.
Vejam a figura abaixo:
Até o mes 11/2012 o Analista X era responsavel,
Após o mes 12/2012 o Analista Y passou a ser o responsavel. Notem que o campo Ano/mes estao nulos, então se não houver nova troca de analista, este sera responsavel ate data corrente.
Pois bem, segue o problema. Imaginamos que eu determine a data de inicio 01/06/2012 até 01/06/2013.
O Resultado que viso buscar seria o da segunda figura em anexo.
Ja tentei varias formas com loop e sem sucesso, se alguem ja passou por situacao semelhante ...
Grato
Abraço a todos.
Boa noite Paulo,
Use o código do link abaixo para criar um calendário com as datas que você precisa usando o código como chave, assim, você vai ter uma relação enriquecida dos dados e nos gráficos, tabelas, lista poderá usar as dimensões e medidas normalmente da forma que você predente.
http://community.qlik.com/message/162975#162975
Faça em um arquivo que possa postar aqui, para testes, caso tenha alguma dúvida a galera ajuda.
Grande abraço.
Boa noite Paulo,
Use o código do link abaixo para criar um calendário com as datas que você precisa usando o código como chave, assim, você vai ter uma relação enriquecida dos dados e nos gráficos, tabelas, lista poderá usar as dimensões e medidas normalmente da forma que você predente.
http://community.qlik.com/message/162975#162975
Faça em um arquivo que possa postar aqui, para testes, caso tenha alguma dúvida a galera ajuda.
Grande abraço.
Caro Aderlan,
Depois de bater cabeça durante um tempo consegui improvisar uma solução, ao meu ver não ficou o código tão "elegante" , porem funcional.
É o que importa Paulo, funcionar e documentar, inclua comentários para você saber o que esta feito, daqui a algum tempo os comentários são valiosos. Rsrsrs
Abraço
Tem um exemplo que fiz aqui para ajudar.
Abraços!!
------------------------------------------------------------------------------------------------------------------------
LET vDataIni = '01/06/2012';
LET vDataFim = '01/06/2013';
LET vData = 0;
LET vDataUsuario = 0;
LET vRegistro = 0;
LET vCount = 0;
vCount = ((NUM(YEAR(vDataFim), 0) - NUM(YEAR(vDataIni), 0)) * 12) + (NUM(MONTH(vDataFim), 0) - NUM(MONTH(vDataIni), 0)) ;
TMP:
LOAD
ANALISTA_FUNCIONARIO,
ANALISTA_CODIGO,
ANALISTA_NOME,
CARTEIRA,
ANO,
MES,
1 AS TIPO_TABELA
INLINE [
ANALISTA_FUNCIONARIO, ANALISTA_CODIGO, ANALISTA_NOME, CARTEIRA, ANO, MES
Aline, 179, Analista 01, 167, 2012, 11
Rafaela, 220, Analista 01, 167
];
vData = vDataIni;
FOR i=1 TO vCount
vDataUsuario = MAKEDATE(PEEK('ANO', $(vRegistro), 'TMP'), PEEK('MES', $(vRegistro), 'TMP'), 1);
IF( TEXT(vDataUsuario) = TEXT(vData) ) THEN
vRegistro = 1;
END IF;
CONCATENATE
LOAD
PEEK('ANALISTA_FUNCIONARIO', $(vRegistro), 'TMP') AS ANALISTA_FUNCIONARIO,
PEEK('ANALISTA_CODIGO', $(vRegistro), 'TMP') AS ANALISTA_CODIGO,
PEEK('ANALISTA_NOME', $(vRegistro), 'TMP') AS ANALISTA_NOME,
PEEK('CARTEIRA', $(vRegistro), 'TMP') AS CARTEIRA,
YEAR('$(vData)') AS ANO,
NUM(MONTH('$(vData)')) AS MES,
2 AS TIPO_TABELA
AUTOGENERATE(1);
vData = DATE(MonthEnd(vData) + 1, 'DD/MM/YYYY');
NEXT
TABELA:
NOCONCATENATE
LOAD
ANALISTA_FUNCIONARIO,
ANALISTA_CODIGO,
ANALISTA_NOME,
CARTEIRA,
ANO,
MES
RESIDENT TMP
WHERE TIPO_TABELA = 2;
DROP TABLE TMP;