6 Replies Latest reply: Oct 13, 2015 5:33 PM by Brander Weten RSS

    Dica de Calendário

    agnaldo neves

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

        • Re: Dica de Calendário
          Clever Anjos

          Leia esse blog post Canonical Date

          • Re: Dica de Calendário
            Brander Weten

            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.

            • Re: Dica de Calendário
              Brander Weten

              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.