Select Incluíndo somente dados iguais..

Firebird

01/02/2006

Salve galera..

Numa tabela tenho 4 campos com keyfield :

C_COD_COLABORADOR, C_DATA_HORA_ENTRADA, C_DATA_HORA_SAIDA, C_STATUS_LANCAMENTO.

Preciso excluir o último campo, mas a tabela já tem muitos dados, portanto não posso apagá-la por completo...

o problema é que existem alguns lançamento assim ex:

COLABORADOR DATA_HORA_ENTRADA DATA_HORA_SAIDA C_STATUS

00000001 10/01/2006 10/01/2006 F
00000001 10/01/2006 10/01/2006 A

E NÃO PODE EXISTIR DOIS LANÇAMENTOS ASSIM...

portanto preciso excluir o campo C_STATUS_LANCAMENTO para não haver mais este tipo de erro..

mas acontece que acredito que já ocorreu este erro, pois tentei alterar todos os status para ´A´, e deu erro de chave primária, dizendo que existe uma ou mais linhas iguais.. o mesmo erro ocorre quando tento simplismente excluir o campo C_STATUS_LANCAMENTO do primary key

mas como tem muitos registros nesta tabela, fica difícil ir um a um e excluir os errados, preciso de um select que me traga somento os ´duplicado´...

será que existe uma maneira?????

agradeço a todos antecipadamente.


Cabelo

Cabelo

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

01/02/2006

SELECT C_COD_COLABORADOR, C_DATA_HORA_ENTRADA, C_DATA_HORA_SAIDA, COUNT(*) FROM tabela
GROUP BY C_COD_COLABORADOR, C_DATA_HORA_ENTRADA, C_DATA_HORA_SAIDA
HAVING COUNT(*) > 1



GOSTEI 0
Cabelo

Cabelo

01/02/2006

Muito obrigado... funcionou perfeitamente...

estava me faltando conhecimento na cláusula Having.....


GOSTEI 0
POSTAR