Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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