Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
mercadante
Contributor

Gerar arquivo CSV quantidade iguais

Caros, Boa tarde!

Tenho uma carga com 10385 linhas onde estão divididas em três cidades

188 Cidade A

96 Cidade B

10101 Cidade C

Preciso gerar um arquivo CSV dividindo estas 10.385 linhas em aproximadamente 14 arquivos com quantidades iguais, tanto de linhas quanto de cidade

Alguém sabe se é possível?

Obrigado!

1 Solution

Accepted Solutions
mercadante
Contributor

Re: Gerar arquivo CSV quantidade iguais

Alessando, Consegui fazer.

Abaixo segue logica que segui.

[TEMP]:

LOAD

CPF_CNPJ

,NOME

,CIDADE

FROM

[<Caminho Arquivo>\21866_PME_CLARO_MOVEL_RESIDENCIAL_01_03_2.csv] (txt, codepage is 1252, embedded labels, delimiter is ';');

[TEMP1]:

LOAD

  RowNo() AS ID

  ,*

RESIDENT

  [TEMP]

ORDER BY CIDADE;

DROP TABLE [TEMP];

LET vContador = 0;

FOR i = 1 TO 10385 STEP 1

LET vContador = IF(vContador + 1 = 14,0,vContador + 1);

LET vCPF_CNPJ = PEEK('CPF_CNPJ',$(i),'TEMP1');

LET vNOME = PEEK('NOME',$(i),'TEMP1');

LET vCD_NET = PEEK('CD_NET',$(i),'TEMP1');

LET vCIDADE = PEEK('CIDADE',$(i),'TEMP1');

[TESTE]:

LOAD * Inline

[ID_LINHA,CPF_CNPJ,NOME,CD_NET,CIDADE

'$(vContador)','$(vCPF_CNPJ)','$(vNOME)','$(vCD_NET)','$(vCIDADE)'

]

;

next

drop table [TEMP1];

5 Replies
MVP
MVP

Re: Gerar arquivo CSV quantidade iguais

Antonio,

com certeza da......Tens como disponibilizar o arquivo txt ?

MVP
MVP

Re: Gerar arquivo CSV quantidade iguais

Reparar que as quantidades de linhas/cidades por 14 não daria numero exato na divisão portanto não poderia ter 14 arquivos iguais......mas por uma ou outra linha a mais em algum dos arquivos para fechar o total de linhas....

mercadante
Contributor

Re: Gerar arquivo CSV quantidade iguais

Bom dia Alessandro!

Segue um modelo do arquivo

Se um deles ficar com algumas linhas a mais não tem problema

mercadante
Contributor

Re: Gerar arquivo CSV quantidade iguais

Alessandro,

O que estou pensando em fazer é criar um contador de 01 a 14 ordenando o arquivo por cidade.

Feito isso eu crio o store somente do indice 1, 2, 3 e assim por diante. Ainda não sei se vai funcionar ou se tem uma forma mais elaborada.

mercadante
Contributor

Re: Gerar arquivo CSV quantidade iguais

Alessando, Consegui fazer.

Abaixo segue logica que segui.

[TEMP]:

LOAD

CPF_CNPJ

,NOME

,CIDADE

FROM

[<Caminho Arquivo>\21866_PME_CLARO_MOVEL_RESIDENCIAL_01_03_2.csv] (txt, codepage is 1252, embedded labels, delimiter is ';');

[TEMP1]:

LOAD

  RowNo() AS ID

  ,*

RESIDENT

  [TEMP]

ORDER BY CIDADE;

DROP TABLE [TEMP];

LET vContador = 0;

FOR i = 1 TO 10385 STEP 1

LET vContador = IF(vContador + 1 = 14,0,vContador + 1);

LET vCPF_CNPJ = PEEK('CPF_CNPJ',$(i),'TEMP1');

LET vNOME = PEEK('NOME',$(i),'TEMP1');

LET vCD_NET = PEEK('CD_NET',$(i),'TEMP1');

LET vCIDADE = PEEK('CIDADE',$(i),'TEMP1');

[TESTE]:

LOAD * Inline

[ID_LINHA,CPF_CNPJ,NOME,CD_NET,CIDADE

'$(vContador)','$(vCPF_CNPJ)','$(vNOME)','$(vCD_NET)','$(vCIDADE)'

]

;

next

drop table [TEMP1];