Caro Fábio: Programe desta forma:
SELECT * FROM ( select rownum, cdpro, dtmov, cdmov from estoque where cdpro = '000009' and tpmov = 'E' order by dtmov desc, cdmov desc ) WHERE ROWNUM < 2 Más já vou avisando que a mesma só funciona à partir do 9i. Atenciosamente, Márcio de Figueiredo Moura e Castro Fábio <[EMAIL PROTECTED]> escreveu: Olá pessoal Estou com um problemão que talvez seja simples p/ quem conheça. Preciso fazer um select dentro de uma function em PL/SQL, mas esse select deve retornar apenas 1 linha. Pesquisei na internet e nas mensagens da lista, e encontrei o uso do pseudo-coluna "rownum", para que retorne apenas a primeira linha. Até aí OK. Só que meu problema é que eu preciso que retorne a 1 linha de acordo com o order by que eu especifiquei. E na prática não é isso que acontece, pois me é trazida a linha que foi encontrada primeiro no select. Exemplo: > select rownum, cdpro, dtmov, cdmov > from estoque > where > cdpro = '000009' and tpmov = 'E' > order by > dtmov desc, cdmov desc > / > > ROWNUM CDPRO DTMOV CDMOV > ------- ------ -------- -------- > 4 000009 29/11/06 00000039 <<== eu precisava dessa linha > 2 000009 17/11/06 00000017 > 3 000009 16/11/06 00000016 > 1 000009 16/10/06 00000015 > select rownum, cdpro, dtmov, cdmov > from estoque > where > cdpro = '000009' and tpmov = 'E' > and rownum = 1 > order by > dtmov desc, cdmov desc > / > > ROWNUM CDPRO DTMOV CDMOV > ------- ------ -------- -------- > 1 000009 16/10/06 00000015 <<== mas me traz essa Alguém sabe como posso pegar a primeira linha de acordo com o order by especificado? Espero que eu tenha me explicado bem. Qualquer ajuda é bem vinda. Até mais Fábio Schunig --------------------------------- Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! [As partes desta mensagem que não continham texto foram removidas]