Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Diversos campos tipo Data

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

1 Solution

Accepted Solutions
Not applicable
Author

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;

View solution in original post

28 Replies
matzenbacher
Creator II
Creator II

Bom Dia,

é possivel postar uma planilha com os dados? pode ser reduzido mesmo.

abs.

Not applicable
Author

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

Not applicable
Author

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

Not applicable
Author

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

Not applicable
Author

Seria isso neorommer?

Not applicable
Author

Segue em anexo o script que gera uma tabela auxiliar com todo o período desejado em uma unica tabela.

Abraços

Not applicable
Author

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?

Not applicable
Author

[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;

Not applicable
Author

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