Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Noite a todos. Sou novo na comunidade e estou estudando muito a ferramenta, estou adorando.
Estou com o seguinte problema.
Tenho em uma Tabela Empresas dois campos do tipo data:
DatadeCadastro
DatadeEvoluçãoParaContato
E uma tabela Oportunidades com dois campos do tipo data:
DataDeAberturaOportunidade
DataDeEncerramentoOportunidade
Acontece o seguinte. Eu preciso de um campo chamado Data onde eu controle todos esses campos. Tentei criar um calendário master, onde puxaria todos os campos para uma tabela nova, só que na hora de carregar, ele diz que tem referências circulares. Abaixo eu coloco o script e por gentileza, peço por favor pra alguém me dar uma luz.
DATAS:
LOAD
IDEmpresa,
DataDeCadastroDaEmpresa as Data,
`ClassificaçãoDaEmpresa` as Status
RESIDENT EMPRESAS;
Concatenate(DATAS)
LOAD
IDEmpresa,
`DataDeEvoluçãoParaContato` as Data,
`ClassificaçãoDaEmpresa` as Status
Resident EMPRESAS;
Concatenate(DATAS)
LOAD
IDOportunidade,
DataDeAberturaDaOportunidade as Data,
StatusDaOportunidade as Status
Resident OPORTUNIDADES;
Concatenate(DATAS)
LOAD
IDOportunidade,
DataDeEncerramentoDaOportunidade as Data,
StatusDaOportunidade as Status
Resident OPORTUNIDADES;
Fico no aguardo e desde já agradeço a ajuda
Neorommer segue o script com ANO,MES e DIA e as DATAS , aqui os filtros funcionam
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';
SET DayNames='seg;ter;qua;qui;sex;sáb;dom';
[Clientes]:
LOAD IDCliente,
NomeCliente,
IDCliente&NomeCliente,
DataDeCadastro,
DataDeEvoluçao,
StatusCliente
FROM
[..\Desktop\teste (1).xlsx]
(ooxml, embedded labels, table is Clientes);
[oportunidades]:
LOAD IDOportunidade,
IDCliente,
IDOportunidade & NomeDaOportunidade,
NomeDaOportunidade,
DataAberturaOportunidade,
DataFechamentoOportunidade,
StatusOportunidade
FROM
[..\Desktop\teste (1).xlsx]
(ooxml, embedded labels, table is Oportunidades);
//CALENDARIO
[calendario]:
LOAD
IDCliente,
DATE(DataDeCadastro,'DD/MM/YYYY')AS DATA,
DAY(DATE(DataDeCadastro,'DD/MM/YYYY')) AS DIA,
MONTH(DATE(DataDeCadastro,'DD/MM/YYYY')) AS MES,
YEAR(DATE(DataDeCadastro,'DD/MM/YYYY')) AS ANO
Resident Clientes;
Concatenate(calendario)
LOAD
IDCliente,
DATE(DataDeEvoluçao,'DD/MM/YYYY')AS DATA,
DAY(DATE(DataDeEvoluçao,'DD/MM/YYYY')) AS DIA,
MONTH(DATE(DataDeEvoluçao,'DD/MM/YYYY')) AS MES,
YEAR(DATE(DataDeEvoluçao,'DD/MM/YYYY')) AS ANO
Resident Clientes;
Concatenate(calendario)
LOAD
IDCliente,
DATE(DataAberturaOportunidade,'DD/MM/YYYY') AS DATA,
DAY(DATE(DataAberturaOportunidade,'DD/MM/YYYY')) AS DIA,
MONTH(DATE(DataAberturaOportunidade,'DD/MM/YYYY')) AS MES,
YEAR(DATE(DataAberturaOportunidade,'DD/MM/YYYY')) AS ANO
Resident oportunidades;
Concatenate(calendario)
LOAD
IDCliente,
DATE(DataFechamentoOportunidade,'DD/MM/YYYY') AS DATA,
DAY(DATE(DataFechamentoOportunidade,'DD/MM/YYYY')) AS DIA,
MONTH(DATE(DataFechamentoOportunidade,'DD/MM/YYYY')) AS MES,
YEAR(DATE(DataFechamentoOportunidade,'DD/MM/YYYY')) AS ANO
Resident oportunidades;
Bom Dia,
é possivel postar uma planilha com os dados? pode ser reduzido mesmo.
abs.
Bom Dia,
Somente este script não demonstra o erro de referência circular.
O Script irá gerar apenas umas tabelona "DATAS" com os campos, IdEmpresa, IdOportunidade, Status e Data.
O problema esta que esta tabela esta fazendo referências à outras tabelas do seu script.
Poderia mandar o script completo para que possamos ver o que pode ser feito?
Uma idéia para ajudar com este problema é retornar desta tabela "Datas" a maior e menor data.
Assim você consegue gerar uma tabela auxiliar e faz um tratamento condicional das suas expressões:
Por exemplo
AUX_DATA:
LOAD
MAX(DATA) AS MAIOR_DATA,
MIN(DATA) AS MENOR_DATA
RESIDENT DATAS;
LET vMaiorData = PEEK('MAIOR_DATA', 0, AUX_DATA);
LET vMenorData = PEEK('MENOR_DATA', 0, AUX_DATA);
MASTER_CALENDAR:
LOAD (vMenorData + 1) AS DATA_AUXILIAR
AUTOGENERATE (vMaiorData - vMenorData);
Toda vez que for selcionado uma data desta tabela não irá impactar automaticamente nos demais registros pois esta tabela não possui nenhum vinculo com outras tabelas.
A questão está em utilziar esta data nas suas expressões como por exemplo:
COUNT( IF( DataDeAberturaDaOportunidade = DATA_AUXILIAR, IdOportunidade) )
Ou com set analysis
COUNT( {<ID_A = P(ID_B)>} ID_A )
Abraços
Cara, estou postando um arquivo QVD de modelo e uma planilha com dados ficticios, baseado no meu problema. Como você pode ver tenho quatro listas de datas, 2 de uma tabela e 2 da outra.... o meu grande problema é juntá-las num único campo data, pra controlar todas as listas juntas.... Fico no aguardo de ajuda... Como minha versão do qlikview não é server, se puderem postar como eu tenho que fazer aqui, agradeó muito.
Rommer
Cara, estou postando um arquivo QVD de modelo e uma planilha com dados ficticios, baseado no meu problema. Como você pode ver tenho quatro listas de datas, 2 de uma tabela e 2 da outra.... o meu grande problema é juntá-las num único campo data, pra controlar todas as listas juntas.... Fico no aguardo de ajuda... Como minha versão do qlikview não é server, se puderem postar como eu tenho que fazer aqui, agradeó muito.
Rommer
Seria isso neorommer?
Segue em anexo o script que gera uma tabela auxiliar com todo o período desejado em uma unica tabela.
Abraços
Eduardo, quando recarrego, aparecem os campos... só que quando eu coloco Ctrl+T, a tabela master calendar está desvinculada do restante, ou seja, os controles ano, mes e dia não estão funcionando.... O que pode ser?
[Clientes]:
LOAD IDCliente,
NomeCliente,
DataDeCadastro,
DataDeEvoluçao,
StatusCliente
FROM
[..\Desktop\teste (1).xlsx]
(ooxml, embedded labels, table is Clientes);
[oportunidades]:
LOAD IDOportunidade,
IDCliente,
NomeDaOportunidade,
DataAberturaOportunidade,
DataFechamentoOportunidade,
StatusOportunidade
FROM
[..\Desktop\teste (1).xlsx]
(ooxml, embedded labels, table is Oportunidades);
[calendario]:
LOAD
IDCliente,
DATE(DataDeCadastro,'DD/MM/YYYY') AS DATA
Resident Clientes;
Concatenate(calendario)
LOAD
IDCliente,
DATE(DataDeEvoluçao,'DD/MM/YYYY') AS DATA
Resident Clientes;
Concatenate(calendario)
LOAD
IDCliente,
DATE(DataAberturaOportunidade,'DD/MM/YYYY') AS DATA
Resident oportunidades;
Concatenate(calendario)
LOAD
IDCliente,
DATE(DataFechamentoOportunidade,'DD/MM/YYYY') AS DATA
Resident oportunidades;
Você deve utilizar o campo "DATA" nas suas expressões como um filtro.
Ou se preferir pode utilizar algumas Triggers (Disparadores) quando este campo (Data) for selecionada.
Baseado neste seu exemplo, defina um indicador para que eu possa te montar um exemplo.
Abraços