4 Replies Latest reply: Jun 19, 2017 2:12 PM by MARIO SOARES RSS

    Load * From * Group By * não funciona

    fabio medina

      Olá pessoal, boa tarde.

       

      Estou tentando usar o comando "group by" como escrito abaixo, mas ao recarregar sempre recebo "expressão inválida". Alguém consegue enxergar qual é o erro? Já olhei todas as primeiras sugestões do google para resolver ou usar o comando, mas não consigo aplicar ao meu código:

       

      XXXXXX:
      LOAD Beneficiário AS BENEFICIARIO,
           Matrícula AS MATRICULA,
           Plano AS PLANO_FS,
           IF(Tipo='T','TITULAR',IF(Tipo='D','DEPENDENTE')) AS TIPO,
           Idade AS IDADE_FS,
           Dependência AS DEPENDENCIA_FS,
           [Co-Participacao] AS COPART_FS,
           Mensalidade AS MENSALIDADE_FS,
           'XXXXXX' AS OPERADORA,
           SUM([Co-Participacao]) AS COPARTICIPACAO,
           SUM(Mensalidade) AS MENSALIDADE
      FROM
      [..\XXXXXX.xlsx]
      (ooxml, embedded labels, table is [Analitico])
      GROUP BY Matrícula,Beneficiário,Tipo;
      STORE XXXXXXINTO [.\XXXXXX.QVD](QVD);
      
      

       

      Agradeço imensamente a ajuda!

        • Re: Load * From * Group By * não funciona
          Sunny Talwar

          Try this

           

          XXXXXX:

          LOAD Beneficiário AS BENEFICIARIO,

              Matrícula AS MATRICULA,

              Plano AS PLANO_FS,

              IF(Tipo='T','TITULAR',IF(Tipo='D','DEPENDENTE')) AS TIPO,

              Idade AS IDADE_FS,

              Dependência AS DEPENDENCIA_FS,

              [Co-Participacao] AS COPART_FS,

              Mensalidade AS MENSALIDADE_FS,

              'XXXXXX' AS OPERADORA,

              SUM([Co-Participacao]) AS COPARTICIPACAO,

              SUM(Mensalidade) AS MENSALIDADE

          FROM

          [..\XXXXXX.xlsx]

          (ooxml, embedded labels, table is [Analitico])

          GROUP BY Matrícula, Beneficiário, Tipo, Plano,  Idade, Dependência, [Co-Participacao], Mensalidade;

           

          STORE XXXXXXINTO [.\XXXXXX.QVD](QVD);

          • Re: Load * From * Group By * não funciona
            Felip Drechsler

            A expressão dá inválida pois seu group by não contempla todos os campos da tabela que você está carregando.

            Nesse caso, fazer algo do tipo:

             

            1. XXXXXX: 
            2. LOAD Beneficiário AS BENEFICIARIO, 
            3.      Matrícula AS MATRICULA, 
            4.      Plano AS PLANO_FS, 
            5.      IF(Tipo='T','TITULAR',IF(Tipo='D','DEPENDENTE')) AS TIPO, 
            6.      Idade AS IDADE_FS, 
            7.      Dependência AS DEPENDENCIA_FS, 
            8.      [Co-Participacao] AS COPART_FS, 
            9.      Mensalidade AS MENSALIDADE_FS, 
            10.      'XXXXXX' AS OPERADORA, 
            11.      SUM([Co-Participacao]) AS COPARTICIPACAO, 
            12.      SUM(Mensalidade) AS MENSALIDADE 
            13. FROM 
            14. [..\XXXXXX.xlsx] 
            15. (ooxml, embedded labels, table is [Analitico]) 
            16. GROUP BY Matrícula,Beneficiário,Tipo,Plano,Tipo,Idade,Dependência,[Co-Participacao],Mensalidade,'XXXXXX';
            17. STORE XXXXXXINTO [.\XXXXXX.QVD](QVD); 
            • Re: Load * From * Group By * não funciona
              MARIO SOARES

              Amigo, segue exemplo;

               

              temp_XXXXXX:
              LOAD Beneficiário AS BENEFICIARIO,
                  Matrícula AS MATRICULA,
                  Plano AS PLANO_FS,
                  IF(Tipo='T','TITULAR',IF(Tipo='D','DEPENDENTE')) AS TIPO,
                  Idade AS IDADE_FS,
                  Dependência AS DEPENDENCIA_FS,
                  [Co-Participacao] AS COPART_FS,
                  Mensalidade AS MENSALIDADE_FS,
                  'XXXXXX' AS OPERADORA,
                  [Co-Participacao],
                  Mensalidade
              FROM  [..\XXXXXX.xlsx] (ooxml, embedded labels, table is [Analitico]) ;
              
              XXXXXX:
              LOAD BENEFICIARIO,
                  MATRICULA,
                  PLANO_FS,
                  TIPO,
                  IDADE_FS,
                  DEPENDENCIA_FS,
                  COPART_FS,
                  MENSALIDADE_FS,
                  OPERADORA,
                  SUM([Co-Participacao]) AS COPARTICIPACAO,
                  SUM(Mensalidade) AS MENSALIDADE
              Resident temp_XXXXXX
              GROUP BY BENEFICIARIO,MATRICULA,PLANO_FS,TIPO,IDADE_FS,DEPENDENCIA_FS,COPART_FS,MENSALIDADE_FS,OPERADORA;
              
              STORE XXXXXX INTO [.\XXXXXX.QVD](QVD);
              
              Drop Tables temp_XXXXXX, XXXXXX;
              
              

               

              Obs.: Os campos/atributos sem função de agrupamento (Ex.: Count(), Sum(), Concat()...), deverão estar declarado na estrutura do Group By.