TECH SOLUTIONS PARTICIPA DO CONBRAI 2016 EM SÃO PAULO

Qua 21 Set - 14:35 por Miro



Comentários: 0


Ajuda com o comando Sumarizar

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Ajuda com o comando Sumarizar

Mensagem  Felipe Naibert em Qua 19 Dez - 11:43

Prezados,

Estou precisando de ajuda.

Possuo uma tabela no seguinte formato:

[Você precisa estar registrado e conectado para ver esta imagem.]

Percebam que na primeira coluna há nomes que se repetem.

O que eu preciso é sumarizar os dados pela primeira coluna e, ao mesmo tempo não perder as informações relativas ao nome desta coluna. Em outras palavras eu queria que o resultado mostrasse apenas uma linha com o nome "FLAVIO" na primeira coluna, com mais seis colunas relativas aos dados relacionados com "FLAVIO", quais sejam: TEGMA, INFORMATICA S/C LTDA - ME, P.D.I. COMERCIO, EMPREENDIMENTOS E PARTICIPACOES S/A., VEICULOS LTDA, SERVICOS DE TRANSPORTES S/C LTDA - ME.

Felipe Naibert

Mensagens : 27
Data de inscrição : 24/02/2012

Voltar ao Topo Ir em baixo

Re: Ajuda com o comando Sumarizar

Mensagem  Raphael Moita Bertolino em Qua 19 Dez - 12:00

Felipe Naibert escreveu:Prezados,

Estou precisando de ajuda.

Possuo uma tabela no seguinte formato:

[Você precisa estar registrado e conectado para ver esta imagem.]

Percebam que na primeira coluna há nomes que se repetem.

O que eu preciso é sumarizar os dados pela primeira coluna e, ao mesmo tempo não perder as informações relativas ao nome desta coluna. Em outras palavras eu queria que o resultado mostrasse apenas uma linha com o nome "FLAVIO" na primeira coluna, com mais seis colunas relativas aos dados relacionados com "FLAVIO", quais sejam: TEGMA, INFORMATICA S/C LTDA - ME, P.D.I. COMERCIO, EMPREENDIMENTOS E PARTICIPACOES S/A., VEICULOS LTDA, SERVICOS DE TRANSPORTES S/C LTDA - ME.

Boa tarde Felipe,

Não achei uma forma para resolver esse problema utilizando as funções do ACL, tive que desenvolver um SCRIPT no próprio ACL para funcionar.

PRIMEIRAMENTE VOCÊ CRIARÁ UM SCRIPT CONTENDO OS CÓDIGOS ABAIXO.
-----------------------------------------------------------------------------------------------------------------------------
SET ECHO NONE

DELETE FORMAT RESULTADO OK
DELETE RESULTADO.FIL OK
DELETE FORMAT TESTE_AGRUPADO OK
DELETE TESTE_AGRUPADO.FIL OK

OPEN teste

NOME_AUX = BLANKS(9)
ACUMULA = BLANKS(1000)
MAX_EMPRESAS = 0

GROUP
GROUP IF NOME_AUX <> Campo_1
MAX_EMPRESAS = MAX(MAX_EMPRESAS; OCCURS(ACUMULA; ";"))
EXTRACT (ACUMULA + CHR(10)) AS "LINHA" IF ACUMULA <> BLANKS(1000) TO TESTE_AGRUPADO EOF
NOME_AUX = Campo_1
ACUMULA = Campo_1
END
ACUMULA = ALLTRIM(ACUMULA) + ";" + ALLTRIM(Campo_2) + ";" + ALLTRIM(Campo_3)
END

CONTADOR = 0
COLUNAS = BLANKS(1000)

DO Novo_Script4 WHILE CONTADOR < MAX_EMPRESAS

OPEN TESTE_AGRUPADO
EXTRACT SPLIT(LINHA; ";"; 1) AS "NOME" %COLUNAS% TO RESULTADO OPEN

DELETE FORMAT TESTE_AGRUPADO OK
DELETE TESTE_AGRUPADO.FIL OK

SET ECHO ON

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

DEPOIS IRÁ CRIAR UM OUTRO SCRIPT COM NOME "Novo_Script4" SE VOCÊ QUISER ALTERAR O NOME TERÁ QUE EDITAR NO SCRIPT ACIMA. LEMBRANDO QUE SE ALGUMA EMPRESA TIVER ";" TERÁ QUE SER ALTERADO O DELIMITADOR OK?

-----------------------------------------------------------------------------------------------------------------------------

COLUNAS = ALLTRIM(COLUNAS) + ' SPLIT(LINHA; ";"; ' + ALLTRIM(STR(CONTADOR + 2; 3)) + ') AS "EMPRESA' + ALLTRIM(STR(CONTADOR + 1; 3)) + '"'

CONTADOR = CONTADOR + 1

-----------------------------------------------------------------------------------------------------------------------------

Att
--
Raphael Moita Bertolino
Analista de Sistemas
Tech Solutions



Raphael Moita Bertolino

Mensagens : 31
Data de inscrição : 02/05/2012

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum