Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mercadante
Creator
Creator

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
Creator
Creator
Author

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];

View solution in original post

5 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Antonio,

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

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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....

furtado@farolbi.com.br
mercadante
Creator
Creator
Author

Bom dia Alessandro!

Segue um modelo do arquivo

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

mercadante
Creator
Creator
Author

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
Creator
Creator
Author

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];