Fórum Dúvida GROUP BY com referencias trocadas #562012
08/09/2016
0
ID | MATRICULA | HORA | CODIGO
1 1212 10:00 999
2 1212 10:00 1
3 1212 10:00 10
4 1212 10:00 25
5 1212 10:00 50
6 1212 12:00 900
7 1212 13:00 901
Blz, eu preciso agrupar esse dados por MATRICULA e HORA, e preciso mostrar o CODIGO, mas tem que ser o mesmo código do menor ID, exemplo, essa tabela acima, agrupada como eu quero deveria ficar assim:
ID | MATRICULA | HORA | CODIGO
1 1212 10:00 999
6 1212 12:00 900
7 1212 13:00 901
Espero ter sido claro. A principio parecia simples, estava resolvendo com a função MIN, mas o problema é que um ID 1 pode ter um código 900 e um ID 2 um menor.
Jonas Tomazelli
Curtir tópico
+ 0Post mais votado
14/09/2016
Não desanima...
Tenta assim:
Select x.id, x.matricula, x.hora, y.codigo
From (select min(a.id) id, a.matricula, a.hora
from teste a
group by a.matricula, a.hora) x, teste y
where y.id = x.id;
Roberto Spernega
Gostei + 1
Mais Posts
08/09/2016
Huidemar Costa
select min(a.id) id, a.matricula, a.hora, (select b.codigo from teste b where b.id=Min(a.id)) from teste a group by 2, 3
Gostei + 0
08/09/2016
Jonas Tomazelli
Gostei + 0
08/09/2016
Huidemar Costa
group by a.matricula, a.hora
?
Gostei + 0
08/09/2016
Huidemar Costa
select min(a.id) id, a.matricula, a.hora, (select b.codigo from teste b where b.id=Min(a.id)) from teste a group by a.matricula, a.hora
Gostei + 0
14/09/2016
Jonas Tomazelli
Gostei + 0
15/09/2016
Huidemar Costa
Gostei + 0
22/09/2016
Jonas Tomazelli
Não desanima...
Tenta assim:
Select x.id, x.matricula, x.hora, y.codigo
From (select min(a.id) id, a.matricula, a.hora
from teste a
group by a.matricula, a.hora) x, teste y
where y.id = x.id;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)