- Este tópico contém 8 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 6 meses atrás por
Anônimo.
-
AutorPosts
-
24 de agosto de 2009 às 5:33 pm #89224
Anônimo
Olá pessoal… sou novo por aqui e tem pouco mais de 3 semanas que comecei a trabalhar com oracle. 😈
Estou fazendo uma aplicação de cadastro e remoção e estou batalhando para conseguir trazer somente os ultimos resultados que foram afetados..
Por exemplo… tenho o cadastro de 6 clientes, e confirmo 2 pra um determinado serviço… mais se eu confirmar outros 3 nesse mesmo serviço… quero que seja exibido somente os 3 ultimos que confirmei…
Tô apanhando aqui…
Se alguém puder me ajudar… preciso disso pra no máximo amanhã… 25/08…
agradeço a disponibilidade de vocês…
24 de agosto de 2009 às 6:35 pm #89228Regis Araujo
ParticipanteSalve Max..
Uma dúvida.. vc tem algum campo de controle dentro das tabelas?! Normalmente para este tipo de sistema, vc precisa de um campo com a descrição exemplo “DataAlteracao”..
Ai no seu select vc traria ordenando por este campo e o rownum <= 3…
Pois o Oracle só salva o horário da ultima alteração na tabela.. indepentende do registro alterado..
Posta ai mais informações das suas tabelas..!!!
Abraços..!
24 de agosto de 2009 às 6:47 pm #89233Anônimo
Tenho as chaves normais…
E no caso eu teria que ordenar por elas???
como seria???
SELECT chave FROM owner.tabela……..
24 de agosto de 2009 às 6:57 pm #89235Regis Araujo
ParticipanteComo assim chaves normais?!!?
Teria que ser um campo de data.. Como vc identifica que o campo foi alterado? Se for com um Flag fica bem complicado..!!
Abraços..
24 de agosto de 2009 às 7:02 pm #89237Anônimo
O campo é ‘S’ ,’N’ e null
null quando é cadastrado
‘S’ confirmado
‘N’ cancelado…No caso seria somente esse campo… pq não tenho campo de data e não posso alterar as tabelas do banco…
Em todo caso eu teria que ordenar quem foi alterado na ultima consulta…
24 de agosto de 2009 às 8:25 pm #89243rwarstat
ParticipantePosta a definição da tabela, assim podemos ajudar mais. Sem conhecer a estrutura da tabela é difícil.
24 de agosto de 2009 às 9:01 pm #89244Anônimo
CLIENTES_EVENTO
– COD_CLIENTE
– COD_EVENTO
– IDT_CONFIRMADO (é por aqui que quero pegar os resultados alterados recentemente – no caso ultima alteração)Dá pra saber assim????
Como que eu poderia aplicar esse rownum
24 de agosto de 2009 às 9:41 pm #89247Regis Araujo
ParticipanteSalve Max..
Veio.. é complicado pegar esta informação.. pois vc só tem um campo de flag.. Já que vc não pode mudar a estrutura da tabela, o que vc pode fazer é criar uma trigger after update que irá jogar em uma tabela o COD_CLIENTE, IDT_CONFIRMADO e a DATA da alteração.. Assim vc poderá concatenar esta tabela alimentada pela trigger com a sua tabela de produção.. assim vc traria as informações que vc precisa..!!
Ai bastaria um select assim..
SELECT CLIE.COD_CLIENTE, TR.IDT_CONFIRMADO
FROM CLIENTES_EVENTOS CLIE, TB_TRIGGER TR
WHERE TR.COD_CLIENTE = CLIE.COD_CLIENTE
AND ROWNUM <=3
ORDER BY TB.DATAALTERACAO DESC;Desta maneira vc conseguirá trazer as informações que vc precisa..Mas vc pode adaptar da maneira que precisar..
Abraços..!!
24 de agosto de 2009 às 9:48 pm #89248Anônimo
Vlw Brother Muito obrigado vou tentar fazer desse jeito…
-
AutorPosts
- Você deve fazer login para responder a este tópico.