Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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!
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];
Antonio,
com certeza da......Tens como disponibilizar o arquivo txt ?
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....
Bom dia Alessandro!
Segue um modelo do arquivo
Se um deles ficar com algumas linhas a mais não tem problema
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.
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];