Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Associar Calendário Master com Tabelas em Banco Oracle

Boa Tarde

Pessoal, criei um calendário master via script no SENSE porém não estou conseguindo associar ele as tabelas oriundas de minha base de dados em Oracle.

Quando utilizo o calendário gerado como dimensão e ou filtro meus gráfico dão erro.

Na aba de Visualizador de Modelo de Dados, a tabela calendário (master) aparece isolada.

Alguém pode me ajudar a fazer esta associação?

1 Solution

Accepted Solutions
maiconmello
Contributor III

Re: Associar Calendário Master com Tabelas em Banco Oracle

Olá Diogo, na leitura da tabela, muito provável que na sua tabela esta campo DataTime.

Exemplo 01/10/2016 17:44:22

Ou formato americana da data.

Portanto na leitura faça :

Load Date(floor(Campooracledata),'DD/MM/AAAA') as Datanova;

No seu calendário master o campo data tem que estar nesse mesmo formato e mesmo nome.

Datanova.

26 Replies
maiconmello
Contributor III

Re: Associar Calendário Master com Tabelas em Banco Oracle

Olá Diogo, na leitura da tabela, muito provável que na sua tabela esta campo DataTime.

Exemplo 01/10/2016 17:44:22

Ou formato americana da data.

Portanto na leitura faça :

Load Date(floor(Campooracledata),'DD/MM/AAAA') as Datanova;

No seu calendário master o campo data tem que estar nesse mesmo formato e mesmo nome.

Datanova.

vinieme12
Esteemed Contributor II

Re: Associar Calendário Master com Tabelas em Banco Oracle

The Name of the date field in your master calendar should be the same as the date field in your fact table.

Employee
Employee

Re: Associar Calendário Master com Tabelas em Banco Oracle

Poderia dar mais informações?

Anexar um print do modelo ou seu script de dados ajudaria muito

Como obter ajuda? Leia antes de postar

Not applicable

Re: Associar Calendário Master com Tabelas em Banco Oracle

Boa Tarde

Estou utilizando o SENSE

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 FirstWeekDay=6;

SET BrokenWeeks=1;

SET ReferenceDay=0;

SET FirstMonthOfYear=1;

SET CollationLocale='pt-BR';

SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';

SET LongMonthNames='janeiro;fevereiro;março;abril;maio;junho;julho;agosto;setembro;outubro;novembro;dezembro';

SET DayNames='seg;ter;qua;qui;sex;sáb;dom';

SET LongDayNames='segunda-feira;terça-feira;quarta-feira;quinta-feira;sexta-feira;sábado;domingo';

//===================================================================================================

// Criar calendario

LET vMesInicial = Date('01/01/2011');

LET vMesFinal = Date(MonthEnd(Today()));

//Criação da tabela Calendário utilizando o comando Autogenerate(), onde a quantidades de linhas é a diferença entre as variáveis criadas anteriormente.

CALENDARIO:

LOAD

[Data] as Data,

Day(Data) as Dia,

Month(Data) as Mês,

Year(Data) as Ano,

DayNumberOfQuarter(Data) as [Dia Trimestre],

DayNumberOfYear(Data) as [Dia Ano],

MonthName(Data) as [Mes Ano],

QuarterName(Data) as [Quarter],

Week(Data) as [Semana],

ceil(Month(Data)/3)&'º Trim' as [Trimestre],

WeekDay(Data) as [Dia Semana];

LOAD

Date(MonthEnd(Today())- Recno()+1,'YYYY/MM/DD') as [Data]

AUTOGENERATE(vMesFinal-vMesInicial+1);

Not applicable

Re: Associar Calendário Master com Tabelas em Banco Oracle

I have many fact table and every one have your own name.

Not applicable

Re: Associar Calendário Master com Tabelas em Banco Oracle

Boa Tarde

Realmente tenho este problema. N SENSE, eu não sei como renomear as tabelas que vem do banco, e já tentei usar esta expressão criando uma dimensão master para as datas.

Utilizei a instrução floor como filtro para pegar somente a data, porém no gráfico aparece a data como formato numérico (numero decimal de referência).

Devo estar deixando algum detalhe passar.

O script que estou utilizando é este:

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 FirstWeekDay=6;

SET BrokenWeeks=1;

SET ReferenceDay=0;

SET FirstMonthOfYear=1;

SET CollationLocale='pt-BR';

SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';

SET LongMonthNames='janeiro;fevereiro;março;abril;maio;junho;julho;agosto;setembro;outubro;novembro;dezembro';

SET DayNames='seg;ter;qua;qui;sex;sáb;dom';

SET LongDayNames='segunda-feira;terça-feira;quarta-feira;quinta-feira;sexta-feira;sábado;domingo';

//===================================================================================================

// Criar calendario

LET vMesInicial = Date('01/01/2011');

LET vMesFinal = Date(MonthEnd(Today()));

//Criação da tabela Calendário utilizando o comando Autogenerate(), onde a quantidades de linhas é a diferença entre as variáveis criadas anteriormente.

CALENDARIO:

LOAD

[Data] as Data,

Day(Data) as Dia,

Month(Data) as Mês,

Year(Data) as Ano,

DayNumberOfQuarter(Data) as [Dia Trimestre],

DayNumberOfYear(Data) as [Dia Ano],

MonthName(Data) as [Mes Ano],

QuarterName(Data) as [Quarter],

Week(Data) as [Semana],

ceil(Month(Data)/3)&'º Trim' as [Trimestre],

WeekDay(Data) as [Dia Semana];

LOAD

Date(MonthEnd(Today())- Recno()+1,'YYYY/MM/DD') as [Data]

AUTOGENERATE(vMesFinal-vMesInicial+1);

Porém não tenho acesso ao script de carga da dados do SENSE.

vinieme12
Esteemed Contributor II

Re: Associar Calendário Master com Tabelas em Banco Oracle

Add the below line in your script,


RENAME FIELD1 to FieldNAME;

where,

FIELD1 = the datefield in your MasterCalendar

FieldNAME = The Datefield in your FACT  ,,


they should be the same if Fact date is for example OrderDate , then MasterCalendar shoud also be OrderDate to create the Association

maiconmello
Contributor III

Re: Associar Calendário Master com Tabelas em Banco Oracle

Fica dificil ajudar assim.

Mas esta usando o floor ??

Faça assim Date(Floor(Campodata),'DD/MM/AAAA') as data

Not applicable

Re: Associar Calendário Master com Tabelas em Banco Oracle

Olá Maicon,

Você precisa de alguma outra informação?

Sou novo no Qlik, e estou aprendendo a implementar.

No Qlik sense, não tenho acesso ao carregamento de dados, será que posso incluir uma coluna na tabela fato com uma cópia da data e dai colocar o mesmo nome do calendário master?