Vous êtes sur la page 1sur 5

Calendrio para Multiplas Dimenses - Qknow http://www.qknow.com.br/wiki/index.php/Calendrio_para_Multiplas_...

Calendrio para Multiplas Dimenses


De Qknow

Introduo
Um calendrio mestre pode ser
criado para apresentar ao usurio
filtros, grficos e outras opes
grficas de tomada de deciso com
base nas datas disponveis em uma
certa dimenso. Por exemplo, a
Data da Venda pode ser a dimenso
desejada para se criar um calendrio
mestre. No entanto, em alguns casos
multiplos campos contendo
data/hora fazem parte do modelo de
dados, tal como no caso de Data de
Entrega, Data do Pedido, Data do Embarque, entre outros. A criao de vrios calendrios completos no
auxilia na construo de elementos grficos que possam combinar as diferentes datas em uma s viso de
negcio. Por isso, a criao de um calendrio mestre a partir de todas as dimenses desejadas contendo as datas
de diferentes origens permitir que grficos e outros elementos possam ser criados a partir de um nico campo
de data.

Suponha, por exemplo, que se esteja trabalhando com trs datas: Data da Venda a partir da tabela de registro de
vendas. Data de Entrega a partir da tabela de transportes. E Data da Fatura da tabela de faturamento. Estas
trs datas de diferentes origens devem resultar em um nico calendrio, de maneira que o usurio possa
visualizar em uma nica seleo de data todas as operaes daquela data.

Para montar um calendrio mestre reunindo todas as datas das diferentes dimenses utilize o fragmento de
exemplo abaixo. Alternativamente o arquivo deste exemplo est disponvel para download aqui. Para o teste
proposto por este artigo trs tabelas sero carregadas: Sales (Vendas), Shipments (Transportadores) e Billing
(Faturamento).

Sales:
LOAD * INLINE [
SalesId, SalesDate, Qty
1, 01/01/2014, 123
2, 01/01/2014, 311
3, 02/01/2015, 321
4, 02/01/2015, 213
5, 04/03/2015, 113
6, 04/04/2015, 221];

Shipments:
LOAD * INLINE [
SalesId, ShipmentDate
1, 03/02/2014
2, 20/01/2014
3, 10/01/2015

1 de 5 21/03/2017 15:07
Calendrio para Multiplas Dimenses - Qknow http://www.qknow.com.br/wiki/index.php/Calendrio_para_Multiplas_...

4, 01/02/2015
5, 03/05/2015];

Billing:
LOAD * INLINE [
SalesId, BillingDate
1, 20/02/2014
2, 28/01/2014
3, 19/01/2015
4, 04/06/2015];

Tabela de Ligao (Linked Table)


A tabela de ligao reune as informaes previamente carregadas em uma nova tabela interligando as
informaes provenientes de cada dimenso em uma nova estrutura que possa acomodar todas as datas
registradas nas diferentes tabelas. Para isso, necessrio reler as tabelas j carregadas em memria com a
instruo RESIDENT. Em linhas gerais este comando permite que uma tabela que esteja "residente" na memria
do QlikView ou QlikSense possa ser lida sem que seja necessrio voltar a base de dados original.

LinkedCalendar:
LOAD SalesId, SalesDate As TransactionDate, 'Sales' As DateType Resident Sales;
LOAD SalesId, ShipmentDate As TransactionDate, 'Ship' As DateType Resident Shipments;
LOAD SalesId, BillingDate As TransactionDate, 'Billing' As DateType Resident Billing

A criao de uma nova tabela com


trs instrues LOAD concatena os
dados de cada tabela de origem
semelhante ao que ocorre em uma
instruo UNION da maioria dos bancos
de dados. No entanto, a concatenao
no QlikView ocorre de maneira
automtica, embora escrever o
comando CONCATENATE possa deixar o
script mais fcil de ser compreendido.

Cada campo do tipo Data


carregado de sua respectiva tabela
em memria e armazenado em um nico campo de nome TransactionDate. Um campo adicional tambm
criado para determinar a que tipo de transao pertence aquela data, seja para vendas, transporte ou faturamento.
Em memria o resultado a figura apresentada ao lado.

A partir de uma tabela de datas comum ser possvel a criao de grficos contendo a data compartilhada por
todas as tabelas de origem. Geralmente um calendrio com datas completas gerado para permitir filtros e
selees sem quebras nos anos, meses, dias da semana, etc. Como criar um calendrio mestre (master calendar)
pode ser consultado no artigo sobre criao de calendrios completos.

Calendrio Completo (Master Calendar)

2 de 5 21/03/2017 15:07
Calendrio para Multiplas Dimenses - Qknow http://www.qknow.com.br/wiki/index.php/Calendrio_para_Multiplas_...

Um calendrio com perodos completos


visa preencher as lacunas que podem
ocorrer entre nas datas registradas em
detemrinada carga de dados. Por
exemplo, caso existam registros
mensais espera-se que o usurio possa
usar uma lista mensal para realizar
filtros, ou mesmo apresentar dados em
forma de grficos por perodo. No
entanto, possvel que nem todos os
meses possuam uma data preenchida no
cadastro, gerando um buraco (gap) no
calendrio.

Usando um Master Calendar permite


preencher todas as datas
sequencialmente entre a menor e maior datas registradas nas tabelas carregadas. Assim, evita-se que haja uma
lacuna em anos, meses, dias da semana e qualquer outra derivao que se deseja apresentar no painel. O passo a
passo para criar um calendrio completo pode ser encontrado em outro artigo, til para preencher as datas
completas.

O fragmento de script a seguir pode ser acrescentado ao trmino do script deste artigo para criar um calendrio
mestre que contenha todas as datas de todas as dimenses. O campo DateType permite filtrar apenas as datas de
determinada dimenso, se necessrio.

Temp:
LOAD Max(TransactionDate) As MaxDate,
Min(TransactionDate) As MinDate
Resident LinkedCalendar;

LET vMaxDate = Peek('MaxDate');


LET vMinDate = Peek('MinDate');

Drop Table Temp;

MasterCalendar:
Load
Date(TransactionDate, 'DD/MM/YYYY') As TransactionDate,
Day(TransactionDate) As Day,
Month(TransactionDate) As Month,
Year(TransactionDate) As Year,
MonthName(TransactionDate) As [Month/Year],
Ceil(Month(TransactionDate)/3) & ' Trimestre' As Quarter,
Weekday(TransactionDate) As WeekDay;

Load Date('$(vMinDate)' + Recno() - 1) As TransactionDate AutoGenerate (YearEnd(vMaxDate) - vMinDate + 1);

O resultado um calendrio completo que contm todos os anos, meses e dias entre os intervalos da menor data
de transao at a maior data carregada. Isso permite que elementos grficos em forma de listas possam ser
utilizados pelos usurios sem que haja lacunas entre os valores das listas.

3 de 5 21/03/2017 15:07
Calendrio para Multiplas Dimenses - Qknow http://www.qknow.com.br/wiki/index.php/Calendrio_para_Multiplas_...

Funes Utilizadas
MIN
MAX
DATE
DAY
MONTH
MONTHNAME
CEIL
WEEKDAY
YEAREND

Assuntos Relacionados
Calendrio Mestre (Master Calendar)
Como o QlikView Interpreta Datas
Carga de Datas em Diferentes Formatos
Destacando Datas no Grfico de Barras
Rotina de Carga Incremental

Download Disponvel
Linked Master Calendar (http://www.qknow.com.br/arquivos/qvw/general_samples
/qknow_linked_calendar_v1.0.qvw)

ndice de Artigos | Pgina Principal

4 de 5 21/03/2017 15:07
Calendrio para Multiplas Dimenses - Qknow http://www.qknow.com.br/wiki/index.php/Calendrio_para_Multiplas_...

Disponvel em "http://www.qknow.com.br/wiki/index.php?title=Calendrio_para_Multiplas_Dimenses&
oldid=2534"

Esta pgina foi modificada pela ltima vez (s) 17h26min de 3 de dezembro de 2015.
Esta pgina foi acessada 948 vezes.

5 de 5 21/03/2017 15:07

Vous aimerez peut-être aussi