6 Replies Latest reply: Aug 18, 2014 4:33 PM by MARCIEL MALTA SILVA RSS

    Expressão - Classificação e Junção 2 Valores

    ANDRE TONINI

      Bom dia,

       

                Pessoal estou com uma dúvida ao elaborar uma expressão, pois preciso adicionar um cálculo somente quando o campo for igual CD_CONTADET = '93'.

       

      1) Essa é a expressão geral que uso para todas as CD_CONTADET.

      ((SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C',VL_BAIXA,0))-

      SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D',VL_BAIXA,0)))

       

      2) Agora o que preciso é unir abaixo a Expressão A + Expressão B, numa só quando CD_CONTADET = '93'.

       

      Expressão A:

      (SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C' AND CD_CONTADET = '93',VL_BAIXA,0))-

      SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D' AND CD_CONTADET = '93',VL_BAIXA,0)))

       

      Expressão B:

      (SUM(IF(ANO_BXA_ = '2014' AND MES_BXA_ = 'jul' AND PC_COMISSAO <> '0',VL_COMISSAO,0)))

       

      Att,

       

      André Tonini

        • Re: Expressão - Classificação e Junção 2 Valores
          Kaauan Matzenbacher

          E ai Andre, ja tentou set analysis, seria mais ou menos isso?

           

          (sum({<   ANO_BXA = {2014}, MES_BXA = {'jul'} , FL_DC = {'C'} , CD_CONTADET = {93}  >}VL_BAIXA)

          -

          sum({<   ANO_BXA = {2014}, MES_BXA = {'jul'} , FL_DC = {'D'} , CD_CONTADET = {93}   >}VL_BAIXA))

          +

          sum( {<NO_BXA = {2014}, MES_BXA = {'jul'} , CD_CONTADET = {93}. PC_COMISSAO -= {0}  >}   VL_COMISSAO)


          • Re: Expressão - Classificação e Junção 2 Valores
            MARCIEL MALTA SILVA

            Boa tarde André Tonini

             

             

            Você ja tentou usar um IF para isso?

             

             

            Ex:

             

             

            If(CD_CONTADET = '93'

             

             

              ,((SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C' AND CD_CONTADET = '93',VL_BAIXA,0))-

              SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D' AND CD_CONTADET = '93',VL_BAIXA,0))))

             

              ,(SUM(IF(ANO_BXA_ = '2014' AND MES_BXA_ = 'jul' AND PC_COMISSAO <> '0',VL_COMISSAO,0)))

              )

            • Re: Expressão - Classificação e Junção 2 Valores
              ANDRE TONINI

              Kaauan e Marciel,

               

                     Boa tarde, grato pelo retorno porém acabei mudando um pouco a minha pergunta, pois como coloquei acima eu estava fazendo a ligação entre as tabelas pelo campo CD_CONTADET, porém esse campo não existia na tabela comissão - então havia criado no excel e via load no script fazia essa "amarração"...mas ficou muito pesado a carga e virou uma gambiarra.

               

                     Bom então reformulando a minha pergunta, vamos ver se isso é possivel:

               

              a) Tenho uma tabela chamada financeiro, que apresenta os seguintes campos.

              1.jpg

               

              b) Tenho uma outra tabela chamada comissão, que não faz ligação direta com a tabela anterior, apenas os campos ANO_BXA e MES_BXA são semelhantes.

              1.jpg

               

              c) Bom agora é que vem o meu problema, existe uma maneira de somar o Valor Comissão (ano_bxa=2014,mes_bxa='jul') R$ 2.500,00 com o Valor Financeiro da CD_CONTADET = '93'?
              Pois nesse cenário que estou criando entendemos que o CD_CONTADET = 93 deverá ser composto pelo 10.000,00 (salário motorista) + 2.500,00 (comissão).

              2.jpg

               

               

              Att,

               

              André Tonini

                • Re: Re: Expressão - Classificação e Junção 2 Valores
                  MARCIEL MALTA SILVA

                  André, segue um exemplo, veja se atente a sua duvida.

                    • Re: Re: Expressão - Classificação e Junção 2 Valores
                      ANDRE TONINI

                      Olá Marciel, desculpa mas não estou conseguindo abrir o qvw, você consegue postar o script e a expressão?

                       

                      Grato

                       

                      André

                        • Re: Re: Expressão - Classificação e Junção 2 Valores
                          MARCIEL MALTA SILVA

                          Eu criei uma carga com os dados do exemplo que você postou,

                          logo apos criei uma chave por mes/ano, e o gráfico de tabela com as dimensões  CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA.

                           

                          segue scripts:

                           

                           

                          Carga usada no exeplo

                           

                          //Cargas

                          FINANCEIRO_TMP:

                          LOAD * INLINE [

                              CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA, VALOR_FINANCEIRO

                              2, Engenharia Elétrica, 2014, jul, 1000

                              6, Telefone, 2014, jul, 2000

                              93, Salário Motorista, 2014, jul, 10000

                          ];

                           

                           

                          COMISSAO_TMP:

                          LOAD * INLINE [

                              CD_MOTORISTA, NM_MOTORISTA, ANO_BXA_C, MES_BXA_C, VALOR_COMISSAO

                              1, Pedro, 2014, jun, 600

                              2, João, 2014, jul, 500

                              18, Pedro, 2014, jul, 700

                              27, Antonio, 2014, jul, 1300

                          ];

                           

                           

                           

                           

                           

                           

                          //Criando uma Chave Mês_Ano

                          FINANCEIRO:

                          NoConcatenate

                          LOAD *,

                             MES_BXA&ANO_BXA as MesAno

                          Resident FINANCEIRO_TMP;

                           

                          DROP Table FINANCEIRO_TMP;

                           

                           

                           

                           

                          COMISSAO:

                          NoConcatenate

                          LOAD *,

                             MES_BXA_C&ANO_BXA_C as MesAno

                          Resident COMISSAO_TMP;

                           

                          DROP Table COMISSAO_TMP;

                           

                           

                          Expressão do gráfico:

                           

                          if(CD_CONTADET = 93

                            ,sum(VALOR_FINANCEIRO)+ Sum(VALOR_COMISSAO)

                            ,sum(VALOR_FINANCEIRO))