Ir para conteúdo

POWERED BY:

Arquivado

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

huerta

Como fazer SELECT especial....

Recommended Posts

Olá a todos.

 

 

Estou com dificuldade em criar um select na tabela e não consigo, vou mostrar:

 

Tenho a tabela TB_emprego que é formada da seguinte maneira:

CREATE TABLE `TB_emprego` (

`cd_trab` int(8) NOT NULL, //é o código do trabalhador

`cd_emp` int(8) NOT NULL, //é o dodigo da empresa

`cd_func` int(8) NOT NULL //é o dodigo da função

`obra` int(8) NOT NULL, //é a referencia com a obra

`dt_admis` date NOT NULL, //é a data de contratação

`dt_demis` date NOT NULL, //é a data de demissão

`desc_dem` text, //é a descrição da demissão

KEY `cd_trab` (`cd_trab`),

KEY `cd_emp` (`cd_emp`),

KEY `cd_func` (`cd_func`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 

Ela é preenchida quando um trabalhador é contratado ou demitido e podem aparecer outros registros do mesmo trabalhador na empresa. Pois pode ser readmitido em outra data pela mesma empresa ou outra. A nossa referencia de emprego/desemprego fica por conta do campo dt_demis, que ficará com 0000-00-00 quando estiver ainda trabalhando, se for demitido recebe a data do dia. Estou tentando buscar da tabela o cd_trab onde a dt_demis seja diferente (<>) de 0000-00-00, mas deve pegar apenas um referencia de cada trabalhador e que seja a última, descosiderando o historico deste trabalhador.

 

Ou seja, tenho que buscar o cd_trab dos trabalhadores que estão desempregados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já pensou na hipótese da abrir este modelo em :

 

 

emprego---<movimentacoes

 

 

Assim teria uma histórico da pessoa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ficar um pouco mais claro, tenho o exemplo abaixo:

 

SELECT cd_func

FROM TB_emprego

WHERE dt_demis <> '0000-00-00'

 

"Quero somente os que tem dt_demis diferente de 0000-00-00, mas somte um registro (cd_func) de cada funcionario pegando a ultima data, pois pode aparecer outros registros deste funcionario, conforme tabela abaixo, numero 41. "

 

+---------+----------+---------+-------+--------------+--------------+-------------+

| cd_trab | cd_emp | cd_func | obra | dt_admis | dt_demis | desc_dem |

+---------+----------+---------+-------+--------------+--------------+-------------+

| 41 | 21 | 2 | 2 | 2008-08-22 | 2008-09-22 | NULL |

| 41 | 23 | 2 | 2 | 2008-10-22 | 2008-10-22 | NULL |

| 33 | 23 | 8 | 1 | 2008-10-22 | 2008-10-22 | NULL |

| 31 | 23 | 13| 2 | 2008-10-01 | 2008-10-22 | NULL |

| 41 | 17 | 18| 1 | 2008-10-24 | 0000-00-00 | NULL |

| 31 | 33 | 8 | 5 | 2008-11-07 | 0000-00-00 | NULL |

+---------+----------+---------+-------+--------------+--------------+-------------+

 

No exemplo abaixo, o resultario deveria aparecer os dois funcionarios que estão desempregados

 

| 41 | 23 | 2 | 2 | 2008-10-22 | 2008-10-22 | NULL

| 31 | 23 | 13| 2 | 2008-10-01 | 2008-10-22 | NULL

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.