Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedro1412

inserindo dados numa nova tabela

Recommended Posts

seguinte pessoal, sou meio novato no sql server mas tô com um problemão nas mãos... eu teria que fazer o seguinte, tenho uma base de dados chamada NOVA_BASE e nela tenho mais de 30000 nomes, com seus correspondentes telefones e cpf (e outros dados irrelevantes pro problema).tenho outra base chamada localizadorgo, onde tenho muuuitos outros nomes, e muitos repetidos, onde o que difere é o telefone. (exemplo: uma linha eh 'joao silva; 555-5454' outra eh 'joao silva; 555-6666' etc)o que eu tenho que fazer pegar cada joão silva por CPF e inserir na nova base, e nessa base tenho varios telefones, tipo, TEL_AUX1, TEL_AUX2, etc.o que preciso é que na NOVA_BASE, existe apenas um joão silva com, diversos telefones, e a fonte seria esse localizadorgo...espero que tenham entendido meu problema e que possam me ajudar, estou desesperado :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, consegui resolver, vou postar aqui se alguem quiser...

 

primeiro, criei a nova tabela, mas os campos de telefones auxiliares ficam todos em branco, pois nao existem

SELECT ma.nm_mailing,ddd_res ,	tel_res ,	ddd_com ,	tel_com ,		ddd_aux1,	tel_aux1,		ddd_aux2,	tel_aux2,		ddd_aux3,	tel_aux3,	cpf ,	cidadeINTO localizadorgo.dbo.MA_NOVA_BASEFROM MAILING_MOT_CAMPANHA mmcjoin mailing ma on (mmc.cd_mailing = ma.cd_mailing) WHERESTATUS IN('L', 'T', 'A')ANDCD_CAMPANHA IN (14, 15, 16, 17, 18, 19, 20,21, 22, 23, 24, 25, 34,  43, 44, 45, 53)

depois, uso essa query pra atribuir esses campos vazios chaveando pelo cpf da pessoa

 

update ma_nova_base set	ddd_com = substring(loc.telefone,1,2),	tel_com = substring(loc.telefone,3,10)from localizadorgo.dbo.telefones locjoin ma_nova_base novon nov.cpf collate latin1_general_ci_ai = loc.cpfcgcwhere nov.ddd_Res + nov.tel_res collate latin1_general_ci_ai != loc.telefone

e uso do mesmo principio para preencher os outros campos, mas tomando cuidado pra nao chamar telefones repetidos

 

update ma_nova_base set	ddd_aux1 = substring(loc.telefone,1,2),	tel_aux1 = substring(loc.telefone,3,10)from telefones locjoin ma_nova_base novon nov.cpf collate latin1_general_ci_ai = loc.cpfcgcwhere nov.ddd_Res + nov.tel_res collate latin1_general_ci_ai != loc.telefoneand nov.ddd_com + nov.tel_com collate latin1_general_ci_ai != loc.telefone

para o telefone auiliar 2

 

update ma_nova_base set	ddd_aux2 = substring(loc.telefone,1,2),	tel_aux2 = substring(loc.telefone,3,10)from telefones locjoin ma_nova_base novon nov.cpf collate latin1_general_ci_ai = loc.cpfcgcwhere nov.ddd_Res + nov.tel_res collate latin1_general_ci_ai != loc.telefoneand nov.ddd_com + nov.tel_com collate latin1_general_ci_ai != loc.telefoneand nov.ddd_aux1 + nov.tel_aux1 collate latin1_general_ci_ai != loc.telefone

e para o 3

update ma_nova_base set	ddd_aux3 = substring(loc.telefone,1,2),	tel_aux3 = substring(loc.telefone,3,10)from telefones locjoin ma_nova_base novon nov.cpf collate latin1_general_ci_ai = loc.cpfcgcwhere nov.ddd_Res + nov.tel_res collate latin1_general_ci_ai != loc.telefoneand nov.ddd_com + nov.tel_com collate latin1_general_ci_ai != loc.telefoneand nov.ddd_aux1 + nov.tel_aux1 collate latin1_general_ci_ai != loc.telefoneand nov.ddd_aux2 + nov.tel_aux2 collate latin1_general_ci_ai != loc.telefone

mais tarde eu tive que fazer uns ajustes pq vieram alguns telefones repetidos, mas não muita coisa. infelizmente não salvei o código, mas não é nada complicado, qualquer pode fazer..

 

obrigado pela atenção do pessoal aí http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.