Cod|Registro|prontuario| Nome
076 3817040 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
076 4157242 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
076 4169089 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
076 4169150 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
079 4265941 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
Mas preciso que me retorne somente:
076 4169150 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
079 4265941 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
select Cod,Registro,prontuario,Nome
from tabela group by Cod
Mas ai ele pede pra adicionar os outros campos no group by ai o resultado e que ele retorna todos os registros. Tentei tambem adicionando distinct mas o resultado foi o mesmo.
el_loko
Não entendi o que você quer fazer exatamente. Trazer somente os últimos 2 registros?
A única diferença dos dois últimos registros para os primeiros é a coluna Registro.
wagne23
Eu preciso que ele não me repita todas as informações baseado na primeira coluna
pmlm
E que valores queres das seguintes? A primeira? A última? Uma qualquer?
Assim serve?
SELECT cod, max(registro) AS registro, max(prontuario) AS prontuario, max(nome) AS nome
from tabela group by cod
wagne23
Eu preciso de apenas uma ocorrencia de cada codigo. Quando eu tento usar o group by cod, ele me retorna um erro dizendo que eu devo incluir as outras colunas e ai quando eu faço isso ele me traz todos os resultados.
Prudencio
Você não pode usar o group by (nesse caso) porque a coluna Registro não se repete.
A não ser que precise dela dela, remova-a de seu select.
Se precisar, vai depender da sua lógica. Se quer o último ou o primeiro registro, ou algo assim.
el_loko
Prudêncio:
Você não pode usar o group by (nesse caso) porque a coluna Registro não se repete.
A não ser que precise dela dela, remova-a de seu select.
Se precisar, vai depender da sua lógica. Se quer o último ou o primeiro registro, ou algo assim.
Isso mesmo. Se precisar da coluna registro vais ter que jogar os dados em uma tabela temporária, ou usar um cursor e implementar
uma lógica para trazer o primeiro ou o último registro.
wagne23
Verdade, agora deu certo. Obrigado pela ajuda.
zoren
Não era melhor usar um distinct no campo COD??
Prudencio
O resultado seria o mesmo com ambas as cláusulas, o que pode vir a mudar é o desempenho - depende do banco e da tabela à que se faz acesso.
Aí já ficaria à cargo do desenvolvedor decidir
Vmaia
wagne23:
Tenho a seguinte tabela
Cod|Registro|prontuario| Nome
076 3817040 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
076 4157242 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
076 4169089 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
076 4169150 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
079 4265941 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
Mas preciso que me retorne somente:
076 4169150 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
079 4265941 000146795 GILBERTO JOSE ALVES COSTA JUNIOR
Tentei usar o group by mas não funcionou direito.
Pelo que deu para perceber não está repetindo as linhas de consulta não.
talvez vc tenha que aumentar os filtros, vai depender do que tua logica precisa
pmlm
Se vires bem o exemplo que pus, não vai acontecer isso.
zoren
Se vires bem o exemplo que pus, não vai acontecer isso.
Não vai funcionar direito
para funcionar desse jeito vc tem q fazer com subquery e relacionar a subquery com a query original
eu fiz uma vez desse jeito que vc falou e trazia os valores errados
Vmaia
acho que algo desse gênero deve funcionar, retirei o prontuario caso você use teremos que utilizar uma outro solução. =D
acho que algo desse gênero deve funcionar, retirei o prontuario caso você use teremos que utilizar uma outro solução. =D
pmlm
Daí eu ter perguntado que valores querias. Porque do teu exemplo acima, não há regra nenhuma para os valroes de registro, prontuário e nome…
pmlm
Vmaia:
SELECT DISTINCT Cod, prontuario, Nome FROM ( SELECT Cod, prontuario, Nome FROM sua_tabela )
acho que algo desse gênero deve funcionar, retirei o prontuario caso você use teremos que utilizar uma outro solução. =D
Isso dá exactamene o mesmo resultado do que
Mas pelos vistos o único “distinct” pretendido é o cod
Vmaia
pmlm:
Vmaia:
SELECT DISTINCT Cod, prontuario, Nome FROM ( SELECT Cod, prontuario, Nome FROM sua_tabela )
acho que algo desse gênero deve funcionar, retirei o prontuario caso você use teremos que utilizar uma outro solução. =D
Isso dá exactamene o mesmo resultado do que
Mas pelos vistos o único “distinct” pretendido é o cod
mil perdões, eu estava morto quando escrevi isso …ashuahsua