Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia!
Estou começando a utilizar o Qlikview e estou com algumas dúvidas para criar alguns itens.
Peço que me ajudem, por favor.
Tenho duas tabelas, uma com o resultado realizado e outra com a meta, ambas possuem datas como sendo sempre o primeiro dia de cada mês de referência.
Estava construindo um gráfico de barras onde compara o resultado realizado (eixo y) com a meta (eixo y) de cada vendedor (eixo x), porém quando eu seleciono um mês e ano, só muda o resultado, enquanto que a meta fica acumulada de vários meses.
Para construir a lista com meses e a lista com anos, utilizei uma tabela Calendário que criei.
Como faço para ambas as datas (resultado e meta) alterarem conforme eu mexo na lista?
Muito obrigado!
Segue um exemplo simples que montei.
Acredito que seu erro estava na questão do relacionamento entre as tabelas.
O que fiz foi unir a tabela de faturamento com a tabela de carteiras, pois verifiquei que seu relacionamento era de 1 para 1.
Boa Tarde.
Tem como você colocar a sua carga de dados aqui ? Pelo oque entendi é algo no vinculo entre as tabelas.
Att
Boa tarde, Carlos!
Segue a carga.
BaseFatura:
LOAD [Nome Associado],
[Cod Associado],
[Cod Produto],
[Qtde Consultas],
[Preço Unitário],
[Valor Faturamento],
[Data Fatura] As %Data
FROM
[Bases_Qlik\Base Faturamento.txt]
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);
BaseCarteiras:
LOAD [Cod Associado],
[Nome Associado],
Segmento,
Executivo,
Carteira,
Status
FROM
Bases_Qlik\Base_Nova_Segmentacao.txt
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);
BaseMeta:
LOAD Comercial As Executivo,
Carteira,
Meta,
Data aS [Data Meta]
FROM
Bases_Qlik\meta_Com.xlsx
(ooxml, embedded labels, table is Plan1);
/*LOAD
Max([%Data]) AS MaxData,
Min([%Data]) AS MinData
Resident BaseFatura;
LET vMaxData = Floor(Num(MonthEnd(Peek('MaxData'))));
LET vMinData = Floor(Num(Peek('MinData')));
DROP Table TMP_Data;*/
Calendario:
Load
Num(date(Data, 'DD/MM/YYYY')) AS %Data,
Date(Data, 'DD/MM/YYYY') AS Data,
Day(Data) AS Dia,
Month(Data) AS Mês,
Year(Data) AS Ano,
Ceil(Month(Data)/3) & ' Trim' AS Trimestre,
MonthName(Data) AS [Mês Ano],
DayNumberOfQuarter(Data) AS [Dia Trimestre],
DayNumberOfYear(Data) AS [Dia Ano],
Week(Data) AS Semana,
Weekday(Data) AS [Dia Semana],
If(Data<='$(vDataRef)',1,0) AS FlgRealizado,
If(Data>'$(vDataRef)',0,1) AS FlgProjetado;
LOAD
Date('$(vMinData)' + RecNo() - 1) AS Data
Autogenerate($(vMaxData) - $(vMinData) + 1);
Obrigado!
Eu tentei colocar a Data Meta igual à Data Fatura, mas deu referência circular.
Marcel, seu erro esta provavelmente na ligação com a tabela de Metas, como você informou que a meta é sempre vinculada ao primeiro dia do mês, então você deve ligar sua tabela de metas através de uma coluna de mês e ano.
Se necessário, crie essa coluna em sua tabela de metas e ligue com o mês do calendário.
Eu criei uma coluna mês e outra ano, porém deu referência circular também.
Segue o relacionamento como ficou.
Junta sua tabela de BaseMeta com a tabela BaseCarteiras através de um LEFT JOIN
Isso resolve seu problema de referência circular e também do relacionamento com a meta.
BaseMeta com BaseCarteiras não dá, pois a base carteira não tem data. Ela contém informações sobre os clientes das carteiras da equipe comercial. Enquanto que a BaseMeta tem a meta para cada carteira em cada mês.
O que eu tentei fazer foi um LEFT JOIN entre BaseFatura e BaseCarteiras, pegando informações de Carteira, Segmento, Executivo e Status. Mas não sei se é pelo tamanho da BaseFatura, que é a maior, mas nem é tão grande assim (tem aprox. 510.000 linhas), o meu pc travou.
Se esta travando é porque tem algum erro no seu JOIN. Poderia passar o que fez?
O caminho pode ser o que te falei ou então o que você mesmo informou, caso tenha maiores dificuldades por favor disponibilize alguns qvds com dados de teste para te auxilia-lo melhor.
Segue o JOIN que fiz e alguns qvd
LEFT JOIN (BaseFatura)
LOAD
Carteira
FROM Bases_Qlik\Base_Nova_Segmentacao.txt
(txt, codepage is 1252, embedded labels, delimiter is ';', msq);
Obrigado!