Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
agnaldoneves
Valued Contributor

Dica de Calendário

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],

Tags (1)
1 Solution

Accepted Solutions
branderbwcs
New Contributor III

Re: Dica de Calendário

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.

6 Replies
Employee
Employee

Re: Dica de Calendário

Leia esse blog post Canonical Date

Employee
Employee

Re: Dica de Calendário

Outra solução: Linking to two or more dates

branderbwcs
New Contributor III

Re: Dica de Calendário

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.

agnaldoneves
Valued Contributor

Re: Dica de Calendário

Bom eu entendi.

Mas não sei como fazer funcionar.

Data_QuitacaoP  - Vem do financeiro

Data_Efetivado_Estoque - Vem das Vendas.

Anexo o exemplo

agnaldoneves
Valued Contributor

Re: Dica de Calendário

Achei este exemplo, mas ainda não conseguir entender.

Varias datas em um único calendário

branderbwcs
New Contributor III

Re: Dica de Calendário

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.