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]

Responder a