Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Será que alguém consegue me ajudar?
Estou precisando juntar duas tabelas da seguinte forma:
[TABELA1] contém os seguintes campos:
TABELA_ANO,
TABELA,MES,
TABELA_DIASUTEIS */esse campo é utilizado para dizer a quantidade de dias úteis do respectivo ano e mês
[TABELA2] contém os seguintes campos:
TABELA2_ANO as TABELA_ANO,
TABELA2,MES,
TABELA2_VENDAS
O resultado final dessa junção é montar uma simples tabela e um gráfico de linha para saber o total de vendas em dias úteis, exemplo:
ANO MES VENDAS_EM_DIAS_UTEIS
2012 JAN 100,00
2012 FEV 200,00
2013 JAN 500,00
Onde VENDA_EM_DIAS_UTEIS = SUM(TABELA2_VENDAS / TABELA_DIASUTEIS)
Em resumo seria isso, se em OUT/2013 a venda total foi de R$80.00,00 e Janeiro possui 22 dias úteis definido no campo TABELA_DIASUTEIS então o resultado de VENDAS_EM_DIAS_UTEIS seria R$3.636,36
O problema é que eu não estou conseguindo juntar as duas tabelas.
Segue em anexo o arquivo QVW e mais duas planilhas excel.
Nesse caso, talvez, o uso do LEFT JOIN seja mais indicado, certo? Experiente!
Abraço.
Enviado pelo meu Windows Phone
Rodolfo, talvez você já conheça, mas não custa eu reforçar.
Use o comando Hash para gerar chaves, usando esse exemplo, ficaria:
Directory;
TABELA1:
LOAD Hash128(TABELA_ANO,TABELA_MES) AS CHAVE,
TABELA_ANO,
TABELA_MES,
TABELA_DIASUTEIS
FROM
tabela1.xlsx
(ooxml, embedded labels, table is Sheet1);
Directory;
TABVELA2:
LOAD Hash128(TABELA2_ANO,TABELA2_MES) as CHAVE,
TABELA2_VENDAS
FROM
tabela2.xlsx
(ooxml, embedded labels, table is Sheet1);
Observe que é eliminado os campos que são iguais no segundo LOAD, porem eu recomendo, nesse caso, que seja feito assim:
TABELA1:
LOAD TABELA_ANO,
TABELA_MES,
TABELA_DIASUTEIS
FROM
tabela1.xlsx
(ooxml, embedded labels, table is Sheet1);
Left Join (TABELA1)
LOAD TABELA2_ANO AS TABELA_ANO,
TABELA2_MES AS TABELA_MES,
TABELA2_VENDAS
FROM
tabela2.xlsx
(ooxml, embedded labels, table is Sheet1);
Apenas dicas, o mais importante mesmo é funcionar.
Grande abraço.
Olá Aderlan, eu já vi o pessoal falando desse Hash, mas nunca usei. Depois vou dar uma estudada nele.
Aproveito para perguntar para que serve esse "Directory;" antes do Load? Nunca usei também...
Quanto ao Left Join, eu também usaria ele.
Abraço!
Boa pergunta, eu também não uso. Rsrsrsrs...
O "Directory" é usado para definir onde esta os arquivos.
Você pode ter arquivos no "C:\temp", então vai ficar "Directory C:\temp", todos os loads vão buscar arquivos nesse caminho até outro comando "Directory".
É pouco usado porque o pessoal costuma usar variáveis mais ou menos assim:
SET caminho = 'C:\temp';
LOAD * FROM $(caminho)\arquivo.txt
Ou seja, vícios de programação, pois conhecendo o QlikView, descobrimos que algumas coisas são diferentes.
Abraço.
Eu também uso variável, tipo assim:
Set vCaminho = '..\pasta';
=]
Muito obrigado Aderlan!
Loguei só para agradecer, resolveu o meu caso com seu exemplo.
Grande abraço!!!