SQL - ajuda
10/09/2004
0
Tenho uma tabela de cadastro de documentos (id_documento, documento) e uma outra tabela de movimentação dos documentos cadastrados (id_mov_documento, id_documento, movimentação_documento)
Preciso de uma consulta SQL que me retorne todos os documentos cadastrados que tenham a ultima movimentação = ´Remessa a Diretoria Executiva´[color=blue:f184d62bef][/color:f184d62bef]
Preciso de uma consulta SQL que me retorne todos os documentos cadastrados que tenham a ultima movimentação = ´Remessa a Diretoria Executiva´[color=blue:f184d62bef][/color:f184d62bef]
Brilhante
Curtir tópico
+ 0
Responder
Posts
11/09/2004
Afarias
uma solução (não me preocupei com otimização) é::
1) crie uma view como abaixo::
create view ultimas_movimentacoes (doc, mov) as
select id_documento, max(id_mov_documento) from movimentação
group by id_documento;
2) execute um dos selects abaixo::
select * from documentos where id_documento in
select u.doc from ultimas_movimentacoes u, movimentação m
where m.id_mov_documento=u.mov
and m.movimentacao_documento=´Remessa a Diretoria Executiva´;
ou
select d.* from ultimas_movimentacoes u
inner join movimentação m on (m.id_mov_documento=u.mov)
inner join documentos d on (d.id_documento=m.id_documento)
where m.movimentacao_documento=´Remessa a Diretoria Executiva´;
T+
1) crie uma view como abaixo::
create view ultimas_movimentacoes (doc, mov) as
select id_documento, max(id_mov_documento) from movimentação
group by id_documento;
2) execute um dos selects abaixo::
select * from documentos where id_documento in
select u.doc from ultimas_movimentacoes u, movimentação m
where m.id_mov_documento=u.mov
and m.movimentacao_documento=´Remessa a Diretoria Executiva´;
ou
select d.* from ultimas_movimentacoes u
inner join movimentação m on (m.id_mov_documento=u.mov)
inner join documentos d on (d.id_documento=m.id_documento)
where m.movimentacao_documento=´Remessa a Diretoria Executiva´;
T+
Responder
Clique aqui para fazer login e interagir na Comunidade :)