3 Replies Latest reply: Dec 17, 2014 8:30 PM by Alessandro Furtado RSS

    Somar chaves parecidas

      Boa tarde pessoal.

       

      Tenho uma tabela

      CodigoDescricaoValor
      4.Total_A
      4.1Conta_150,00
      4.2Conta_2100,00
      4.3Conta_5-35,00
      5.Total_B
      5.1Conta_832,50
      5.2Conta_11-5,00
      5.3Conta_1922,50

       

      O que preciso fazer é verificar via EXPRESSÃO se o campo VALOR é nulo. Se ele for nulo, eu preciso somar o valores onde o código seja "parecido" com o código da linha que não tem valor. (Ou seja, tudo que começar com "4").

       

      Eu tentei algo como:

      = If(IsNull(Valor), Sum(Total If(Codigo like (Codigo & '*'), Valor)))

       

      Até funciona, porém ele gera um Total Geral o qual vai aparecer tanto na linha 4. quanto na linha 5.

       

      Alguma ideia ?

       

      Abraços

       

      Anderson Oberdan

        • Re: Somar chaves parecidas
          Alessandro Furtado

          Boa tarde.

           

          Eu optaria em fazer no script. Dependendo da quantidade de registros pode ficar pesado na expressão....

          Neste caso estou usando left para pegar, mas tem que ver no cadastro se tem quem é o "pai" e somaria nele.  Fiz da forma abaixo para mostrar.

           

          Segue um exemplo

           

          Tabela:

          LOAD * INLINE [

          Conta,Descricao, Valor

          4.   ,Total_A  ,

          4.1 ,Conta_1  , 50

          4.2 ,Conta_2  , 100

          4.3 ,Conta_5  , -35

          5. ,Total_B  ,

          5.1 ,Conta_8  , 32

          5.2 ,Conta_11 , -5

          5.3 ,Conta_19 , 22];

           

           

          Left join (Tabela)

          LOAD

              *

               Where len(Conta)=2 ;

          LOAD

             left(Conta,2)    as Conta,

             sum(Valor)       as Valor_Total

          Resident Tabela Group by left(Conta,2); 

           

           

           

          O resultado seria

          4.Total_A115
          4.1Conta_150
          4.2Conta_2100
          4.3Conta_5-35
          5.Total_B49
          5.1Conta_832
          5.2Conta_11-5
          5.3Conta_1922

           

          Att,

           

          Alessandro Furtado

            • Re: Somar chaves parecidas

              Obrigado Alessandro pelo resposta. Porém uma dos meus problemas é que o codigo pode ser:

              4.

              4.1.

              4. .

              4.xyzabc

              4.325.32

               

              e qualquer valor deste pode ter "filhos". Então essa busca tem que ser dinâmica por isso pensei no "like"

              Estou tentando evitar de fazer no script porque meu script já é uma "salada" organizada. Mas nesta carga já tenho Stored Procedure sendo montada dinamicamente dentro de For. Já tenho joins e concatenates.. enfim, não queria colocar mais um complicados no script senão daqui uns anos só Deus pra entender tanta coisa.. huahuahau..

               

              Mas se não tiver saída via expressão, vou acabar usando sua solução mesmo! Valeu.