Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho duas tabelas e gostaria de saber como unir as datas.
Dica correta de calendário.
Estou fazendo DRE e preciso unir as datas( data_Efetivado_Estoque e Data_QuitacaoP.)
Como seria a melhor forma.
Tabela_Vendas:
Data_Efetivado_Estoque
Day(Data_Efetivado_Estoque)as Dia,
ceil(Month(Data_Efetivado_Estoque)/3)&'Trim' as [Trimestre],
Year(Data_Efetivado_Estoque) as [Ano],
Month(Data_Efetivado_Estoque) as [Mês],
Tabela_Financeiro:
Data_QuitacaoP
------------------------------------------
Day(Data_QuitacaoP)as PDia,
ceil(Month(Data_QuitacaoP)/3)&'Trim' as [PTrimestre],
Year(Data_QuitacaoP) as [PAno],
Month(Data_QuitacaoP) as [PMês],
Agnaldo, boa noite!
Seguem as minhas sugestões:
1. Renomear os campos que serão ligados nas duas tabelas para um nome comum.
EX:
Tab_Mov:
LOAD
Data_Efetivado_Estoque AS %ChaveData,
"Prod_Serv_Ordem" AS Tab_MovOrdem
SQL SELECT *
FROM "S9_Real".dbo."View_Vendas"
WHERE Movimento_Data>= '2013-01-01';
PlanoContas:
LOAD
Data_QuitacaoP AS %ChaveData,
"Nome_FuncionarioP" AS PlanoContasNomeFuncionario
SQL SELECT *
FROM "S9_Real".dbo."View_A_temp"
WHERE Data_QuitacaoP>= '2013-01-01';
2. Após renomear os campos você pode utilizar o conceito de master calendário, que irá facilitar o seu trabalho com datas, caso você tenha dúvidas em utilizá-lo eu posso te ajudar, mas acredito que você irá encontrar material aqui na comunidade. Quando você começar a utilizar este conceito não será mais necessário criar este tipo de estrutura:
EX:
Estrutura atual:
Tab_Mov:
LOAD
WeekDay(Data_Efetivado_Estoque) as [Semana],
Day(Data_Efetivado_Estoque)as Dia,
ceil(Month(Data_Efetivado_Estoque)/3)&'Trim' as [Trimestre],
Year(Data_Efetivado_Estoque) as [Ano]
SQL SELECT *
FROM "S9_Real".dbo."View_Vendas"
WHERE Movimento_Data>= '2013-01-01';
Estrutura sugerida:
Tab_Mov:
LOAD
Data_QuitacaoP AS %ChaveData,
SQL SELECT *
FROM "S9_Real".dbo."View_Vendas"
WHERE Movimento_Data>= '2013-01-01';
Espero ter ajudado.
Leia esse blog post Canonical Date
Outra solução: Linking to two or more dates
Agnaldo, boa tarde!
Já tive este mesmo problema e a minha solução foi unir as duas tabelas pela chave "Data". Após realizar esta ligação você faz o calendário da chave.
No meu problema existiam várias tabelas fato, mas funcionou muito bem.
Att,
Brander Weten.
Bom eu entendi.
Mas não sei como fazer funcionar.
Data_QuitacaoP - Vem do financeiro
Data_Efetivado_Estoque - Vem das Vendas.
Anexo o exemplo
Agnaldo, boa noite!
Seguem as minhas sugestões:
1. Renomear os campos que serão ligados nas duas tabelas para um nome comum.
EX:
Tab_Mov:
LOAD
Data_Efetivado_Estoque AS %ChaveData,
"Prod_Serv_Ordem" AS Tab_MovOrdem
SQL SELECT *
FROM "S9_Real".dbo."View_Vendas"
WHERE Movimento_Data>= '2013-01-01';
PlanoContas:
LOAD
Data_QuitacaoP AS %ChaveData,
"Nome_FuncionarioP" AS PlanoContasNomeFuncionario
SQL SELECT *
FROM "S9_Real".dbo."View_A_temp"
WHERE Data_QuitacaoP>= '2013-01-01';
2. Após renomear os campos você pode utilizar o conceito de master calendário, que irá facilitar o seu trabalho com datas, caso você tenha dúvidas em utilizá-lo eu posso te ajudar, mas acredito que você irá encontrar material aqui na comunidade. Quando você começar a utilizar este conceito não será mais necessário criar este tipo de estrutura:
EX:
Estrutura atual:
Tab_Mov:
LOAD
WeekDay(Data_Efetivado_Estoque) as [Semana],
Day(Data_Efetivado_Estoque)as Dia,
ceil(Month(Data_Efetivado_Estoque)/3)&'Trim' as [Trimestre],
Year(Data_Efetivado_Estoque) as [Ano]
SQL SELECT *
FROM "S9_Real".dbo."View_Vendas"
WHERE Movimento_Data>= '2013-01-01';
Estrutura sugerida:
Tab_Mov:
LOAD
Data_QuitacaoP AS %ChaveData,
SQL SELECT *
FROM "S9_Real".dbo."View_Vendas"
WHERE Movimento_Data>= '2013-01-01';
Espero ter ajudado.