SQL: Primeiro pedido por prontuario

Firebird

10/10/2006

Ola pessoal!
Poderiam me ajudar com essa duvida de sql?

Vamos ao problema.

Eu tenho uma extença lista de pedidos de prontuarios.
[b:cade15fc6f]Eu quero pegar o mais recente pedido para cada prontuario.[/b:cade15fc6f]
Ex:
Lista pedidos:
Prontuario   dataconsulta    horaconsulta   medico
    1             10/10/2006            13            45
    1             21/10/2006            7              60
    1             10/10/2006            7               1

    2             11/10/2006            13             99
    2             11/10/2006            12             30
    2             15/10/2006             7             201


Resultado desejado(Eu quero pegar o mais recente pedido para cada prontuario):
Prontuario   dataconsulta    horaconsulta   medico
    1             10/10/2006            7               1
    2             11/10/2006            12             30


[b:cade15fc6f]Minhas soluções(Erradas):[/b:cade15fc6f]
select first 1 prontuario,datasaida,medico,horaconsulta
from PEDIDOS
where
prontuario=´1´
order by datasaida,horaconsulta

resultado:
Prontuario   dataconsulta    horaconsulta   medico
    1             10/10/2006            7                1

Com este sql eu consigo pegar o primeiro para um prontuario especificado. Mas nao de todos os prontuarios.

select prontuario,datasaida,medico,horaconsulta
--PEGA TODOS OS PEDIDOS
from PEDIDOS m
where
exists--APENAS OS REGISTROS CONTIDOS EM
(
select first 1 prontuario,datasaida,medico,horaconsulta
--PRIMEIRO PEDIDO
from PEDIDOS
where
prontuario=m.prontuario--DO PRONTUARIO X
order by datasaida,horaconsulta
)

resultado:
Prontuario   dataconsulta    horaconsulta    medico
    1             10/10/2006            13               45
    1             21/10/2006            7                60
    1             10/10/2006            7                  1

    2             11/10/2006            13              99
    2             11/10/2006            12               30
    2             15/10/2006             7               201


Tambem nao deu certo. :?

Me ajudem.


Lorde_morte.

Lorde_morte.

Curtidas 0

Respostas

Sremulador

Sremulador

10/10/2006

utilize o [b:48712b3b96]desc[/b:48712b3b96]


GOSTEI 0
Lorde_morte.

Lorde_morte.

10/10/2006

utilize o [b:d0d8fa9b2f]desc[/b:d0d8fa9b2f]


Antes de tudo obrigado pela atenção.

TABELA exemplo:
Prontuario   dataconsulta    horaconsulta   medico 
    1             10/10/2006            13            45 
    1             21/10/2006            7              60 
    1             10/10/2006            7               1 
    2             09/10/2006            13             99 
    2             11/10/2006            12             30 
    2             15/10/2006             7             201
    3             25/11/2006             7              5


Não sei se entendi, é este o resultado que voce propoe?
order by desc dataconsulta, horaconsulta;
restultado:
Prontuario   dataconsulta    horaconsulta   medico 
    2             09/10/2006            13             99 
    1             10/10/2006            7               1 
    1             10/10/2006            13            45 
    2             11/10/2006            12             30 
    2             15/10/2006             7             201 
    1             21/10/2006            7              60 
    3             25/11/2006             7              5


Mas eu quero esse resultado.
Prontuario dataconsulta    horaconsulta   medico 
    2           09/10/2006            13             99 
    1           10/10/2006            7               1 
    3             25/11/2006           7              5


[b:d0d8fa9b2f]A menor data, hora e cada prontuario apareça uma unica vez.[/b:d0d8fa9b2f]

Eu ainda preciso de ajuda. :?


GOSTEI 0
POSTAR