Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá pessoal,
Preciso de uma ajuda para criar, no script, um campo calculado (Valor3) com valores de tabelas distintas. Se possível NÃO carregar a Valores1.csv, apenas usar como temporária, é melhor ainda.
// Valores 1
LOAD
cod_empresa,
ano_mes,
valor1
FROM Valores1.csv;
// Valores 2
LOAD
cod_empresa,
ano_mes,
// valor2,
valor2 - valor1 (carregado da tabela Valores1.csv) as Valor3
FROM Valores2.csv;
Parece que há alguma solução usando ApplyMap, mas não entendi como.
OBS: Estou usando a versão Demo, não consigo abrir outro .QVW.
Obrigado.
// Valores 1
Valores1:
LOAD
cod_empresa,
ano_mes,
valor1
FROM Valores1.csv;
mapa:
mapping load cod_empresa & ano_mes, valor1 resident Valores1;
LOAD
cod_empresa,
ano_mes,
// valor2,
valor2 - applymap('mapa',cod_empresa & ano_mes,0) as Valor3
FROM Valores2.csv;
um detalhe, verifique sempre se seu campo ano_mes está igual nos dois lados.
Uma solução usando join
Valores1:
LOAD
cod_empresa,
ano_mes,
valor1
FROM Valores1.csv;
left join LOAD
cod_empresa,
ano_mes,
valor2
FROM Valores2.csv;
LOAD
*,
valor2 - valor1 as valor3
resident Valores1;
Drop table Valores1;
Olá Clever,
Obrigado pela atenção.
Tentei usar sua solução com o JOIN, mas não deu certo. Precisei incluir uma tabela a mais.
No script abaixo, se não dou o DROP, vejo que os são devidamente carregados. Mas o campo calculado valor_final não possui valores.
Valores1:
LOAD cod_empresa,
ano_mes,
valor1
FROM Valores1.csv WHERE (ano_mes >= '201301');
JOIN
// Valores2:
// cod_cia's que não estão na Valores1
LOAD cod_empresa,
ano_mes,
valor2
FROM Valores2.csv WHERE (ano_mes >= '201301' And cod_empresa >= '10000' And cod_empresa <= '19999');
JOIN
// Valores3:
LOAD cod_empresa,
ano_mes,
valor3
FROM Valores3.csv WHERE (ano_mes >= '201301');
Tabela Final:
LOAD cod_empresa,
ano_mes,
'x' as cod_prod,
valor1 + valor2 - valor3 as valor_final
Resident Valores1;
DROP table Valores1;
Posta o seu log por favor
Não sei onde gerar este log. Estou no Qlikview demo.
Segue o arquivo de log.
Não entendo porque meus posts estão sendo moderados. Isso não acontecia antes.
Você teve ter uma tabela chamada PREV_TRAD_PROV: com 2.199 registros.
Pressione Control+T ache essa tabela , clique com o botão direito, "Preview", tire um print e anexe por favor
Aqui estão os Prints.
Na tabela PROV_SEGPREV, o campo PREV_EAPP_PROV parece estar vazio, mas contém dados, conforme visto no print Resultado.
No Resultado, a coluna PREV_TRAD_PROV deveria ser o cálculo feito no final do script.