Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde
Tenho 3 tabelas fatos e nessas 3 tabelas fato eu teria vários campos data
exemplo
tabela fatoapontamento
data_apontamento
tabela fatoprojetos
data_inicio_projeto
tabela fatodemanda
data_solicitação
eu teria no caso uma dimensão da data, para usar como filtro
porém se eu concatenar as tabelas fato e colocar os campos data com o nome data que será o nome do campo da minha dimensão
não funcionará
alguém pode me dar um exemplo de como solucionar isso
link table?
nunca usei, alguém consegue exemplificar.
grata
Carla, você pode trabalhar da seguinte forma:
Veja se te ajuda:
http:// blogdonicolett.com.br/2014/11/18/expressoes-considerando-datas-diferentes/
Carla,
Não existe nenhum outro campo que seja comum entre as tabelas?
Uma maneira de fazer isso é:
Junte todos os campos comum e forme um campo Chave;
Criei uma LinkTable e use o comando Subfield para separar esses campos;
Sua dimensões ficaram todas "conectadas" nessa LinkTable;
Atenciosamente,
Tiago Ferrucio
Carla,
Este artigo pode te ajudar. Canonical Date
Quanto a técnica da link table, importante entender como estas tabelas se relacionam para avaliar se esta é a melhor modelagem.
Pablo
Olá Carla,
resolvi um problema parecido esses dias utilizando a modelagem descrita nesse artigo Re: Tutorial - Using Common Date Dimensions and Shared Calendars
oi gente
vou dar uma olhada em todas as dicas
obrigada
Oi Yuri
Fazendo dessa forma, eu poderia utilizar o campo data do calendário, como filtro principal
e o filtro seria aplicado a todas as tabelas.por exemplo
montei um calendário, certo
e um linktable com todas os campos data de todas as tabelas
dai no filtro principal,eu colocaria o campo data( do calendário), e aplicaria o filtro
exemplo, tenho data de apontamento na tabela fato apontamentos e data da solicitação
e também tem a situação onde terá tabela que possui mais de um campo data
Carla boa tarde, não sei se entendi sua duvida, mas você quer ter um calendario principal e quando você filtrar uma data nele todas as suas tabelas vão filtrar aquele periodo. Se for isso segue um exemplo:
LET vDateMin = Num(MakeDate(2014,1,1)); //Cria um calendario a partir do dia 01/01/2014
LET vDateMax = Floor((Today()-1));
LET vDateToday = Num(Today());
TempCalendar:
LOAD
$(vDateMin) + RowNo() - 1 AS DateNumber,
Date($(vDateMin) + RowNo() - 1) AS TempDate
AUTOGENERATE 1
WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);
Calendar:
LOAD
date(Floor([TempDate]),'DD/MM/YYYY') as chave_apontamento,//Campo chave entre as tabelas
date(Floor([TempDate]),'DD/MM/YYYY') as chave_projetos,//Campo chave entre as tabelas
date(Floor([TempDate]),'DD/MM/YYYY') as chave_demanda,//Campo chave entre as tabelas
week(Floor([TempDate])) as semanacalendario,
if(month(weekend([TempDate]))= month([TempDate]),div(day(WeekEnd([TempDate])),7),div(day(Weekend([TempDate],-1)),7)+1)+1 as NumeroSemanaMes,
// Standard Date Objects
Day(TempDate) AS Dia,
Num(Month(TempDate)) AS MêsNum,
WeekDay(TempDate) AS [Dia da Semana],
Week(TempDate) AS [Semana],
Month(TempDate) AS Mês,
Month(TempDate) AS MêsTop10,
//'Q' & Ceil(Month(TempDate)/3) AS CalendarQuarter,
Year(TempDate) AS Ano,
// Calendar Date Names
WeekName(TempDate) as SemanaAno,
MonthName(TempDate) as MêsAno,
QuarterName(TempDate) as Quarter
RESIDENT TempCalendar ORDER BY TempDate ASC;
DROP TABLE TempCalendar;