Ir para conteúdo

POWERED BY:

Arquivado

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

leonardonobre

select for update.

Recommended Posts

Amigos,

boa tarde, alguém poderia auxiliar?

 

Tenho a SQL para pegar os dados de uma tabela e inputar em outra tabela.

 

SELECT tb_cpf.cpf,

tb_cpf.pernr,

tb_cpf.ename,

tb_cpf.dt_adm,

tb_cpf.dt_dem,

tb_cpf.massg,

if(tb_cpf.massg="A7",'1',if(tb_cpf.massg="A6",'2',if(tb_cpf.massg="A1",'3',if(tb_cpf.massg="A3",'4',if(tb_cpf.massg="B1",'5',if(tb_cpf.massg="E1",'6',if(tb_cpf.massg="D1",'7',0))))))) as motivo, tb_demissao.status='7', tb_cpf.btrtl, tb_demissao.aprovado='X',tb_demissao.dtdissidio='0000-00-00'

FROM tb_cpf

 

INSERT INTO tb_demissao(tb_demissao.cpf,

tb_demissao.pernr,

tb_demissao.nome,

tb_demissao.dtadmi,

tb_demissao.dtdemi,

motivo,

tb_demissao.status,

tb_cpf.btrtl,

tb_demissao.aprovado,

tb_demissao.dtdissidio)

 

Porém os dados da tb_cpf.massg é diferente da tb_demissao.motivo, porém realizam a mesma função de atribuir em status, então tenho que fazer esses if's todos.

 

Alguém teria alguma idéia??

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

CASE ficaria mais bonito/legivel

 

 

SELECT tb_cpf.cpf,

tb_cpf.pernr,

tb_cpf.ename,

tb_cpf.dt_adm,

tb_cpf.dt_dem,

 

CASE tb_cpf.massg

WHEN "A7" THEN '1'

WHEN "A6" THEN '2' (...)

ELSE '0'

END as motivo,

 

tb_demissao.status='7', tb_cpf.btrtl, tb_demissao.aprovado='X',tb_demissao.dtdissidio='0000-00-00'

FROM tb_cpf

 

 

 

 

 

http://dev.mysql.com/doc/refman/5.0/en/case-statement.html

 

 

você pode fazer tambem via "batch" faz com where e vai inserindo uma categoria de cada vez atraves de uma serie consecutiva de consulta parecidas, mas eh um metodo meio bacalhoesco e lusitano

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.