SELECT SEM SUCESSO
Pessoal, tenho uma tabela TRAMITE com os seguintes dados:
| id_tramite | dt_tramite | id_destino | id_documento |
| 1 | 2008-12-01 13:31:43 | 105 | 5 |
| 2 | 2008-12-02 14:20:33 | 716 | 5 |
| 3 | 2008-12-03 08:27:21 | 716 | 6 |
| 4 | 2008-12-04 10:42:09 | 198 | 6 |
| 5 | 2008-12-05 17:07:36 | 228 | 8 |
Eu preciso pegar as datas mais recentes de cada documento.
Fiz o seguinte SQL:
[b:0d5d6c4430]
SELECT max(dt_tramite), id_documento FROM tramite GROUP BY id_documento.[/b:0d5d6c4430]
Esse select funciona, só que preciso pegar o id_tramite, ae fiz o seguinte:
[b:0d5d6c4430]
SELECT max(dt_tramite), id_documento, id_tramite FROM tramite GROUP BY id_documento.[/b:0d5d6c4430]
Mas não funciona pq diz que o id_tramite precisa estar numa função de agregação ou no group by.
Alguém sabe como fazer?
| id_tramite | dt_tramite | id_destino | id_documento |
| 1 | 2008-12-01 13:31:43 | 105 | 5 |
| 2 | 2008-12-02 14:20:33 | 716 | 5 |
| 3 | 2008-12-03 08:27:21 | 716 | 6 |
| 4 | 2008-12-04 10:42:09 | 198 | 6 |
| 5 | 2008-12-05 17:07:36 | 228 | 8 |
Eu preciso pegar as datas mais recentes de cada documento.
Fiz o seguinte SQL:
[b:0d5d6c4430]
SELECT max(dt_tramite), id_documento FROM tramite GROUP BY id_documento.[/b:0d5d6c4430]
Esse select funciona, só que preciso pegar o id_tramite, ae fiz o seguinte:
[b:0d5d6c4430]
SELECT max(dt_tramite), id_documento, id_tramite FROM tramite GROUP BY id_documento.[/b:0d5d6c4430]
Mas não funciona pq diz que o id_tramite precisa estar numa função de agregação ou no group by.
Alguém sabe como fazer?
Moriarty
Curtidas 0
Respostas
Jair Bg
09/12/2008
Boa Tarde se entedi direito seria (+-) assim:
SELECT tramite.id_tramite
, tramite.id_documento
, tramite.id_destino
, tramite.dt_tramite
FROM tramite
INNER JOIN (SELECT tramite.id_documento
, MAX( tramite.dt_tramite) AS dt_tramite
FROM tramite
GROUP BY tramite.id_documento
) AS sq_tramite
ON (sq_tramite.id_documento = tramite.id_documento)
AND (sq_tramite.dt_tramite = tramite.dt_tramite)
SELECT tramite.id_tramite
, tramite.id_documento
, tramite.id_destino
, tramite.dt_tramite
FROM tramite
INNER JOIN (SELECT tramite.id_documento
, MAX( tramite.dt_tramite) AS dt_tramite
FROM tramite
GROUP BY tramite.id_documento
) AS sq_tramite
ON (sq_tramite.id_documento = tramite.id_documento)
AND (sq_tramite.dt_tramite = tramite.dt_tramite)
GOSTEI 0
Moriarty
09/12/2008
Obrigado, funcionou direitinho.
Nem imaginei que seria tão fácil.
Valeu
Nem imaginei que seria tão fácil.
Valeu
GOSTEI 0