Alex_DTP 0 Denunciar post Postado Dezembro 19, 2008 Pessoal, Tenho a seguinte estrutura como exemplo tblDocumentos (docsID, Documento) tblTramitação (tramID, docsID, Destino, Data) O problema: Ao pesquisar "Destino" como "Seção b", me retornasse todos os documentos que estão na "seção b", ou seja, que a última data da tramitação do documento contivesse "Seção b". Seria: listar todos os documentos em Tramitação agrupando pela última data e então selecionar somente os documentos que contivessem a "Seção b". Já tentei assim, mas não rola porque mostra todos os documentos quando a última data foi na "Seção b": SELECT tbl_documentos.docsID, tbl_documentos.documento, tbl_tramitacao.destino, Max(tbl_tramitacao.data) AS UltimaData FROM tbl_documentos INNER JOIN tbl_tramitacao ON (tbl_documentos.docsID = tbl_tramitacao.docsID) GROUP BY tbl_documentos.docsID, tbl_documentos.documento, tbl_tramitacao.destino HAVING tbl_tramitacao.destino = 'Seção b' Acho que é mais ou menos assim, mas dá erro: SELECT tbl_documentos.docsID, tbl_documentos.Documento, tbl_tramitacao.Destino, tbl_tramitacao.Data FROM tbl_documentos LEFT JOIN tbl_tramitacao ON tbl_documentos.docsID = tbl_tramitacao.docsID WHERE tbl_tramitacao.tramID IN (SELECT tramID, MAX(Data) FROM tbl_tramitacao WHERE "Seção b"); Segue o sql do bd para facilitar: db_ultima_data.sql Resultado esperado neste bd de exemplo: Pesquisando "Seção b" deve retornar os documentos B,C,D,E,F que estão (ou tem sua última tramitação) na "Seção b". Os Docs A e G não devem ser retornados pois encontram-se na seção c e d respectivamente, onde tiveram sua última tramitação. Tô há dias quebrando a cabeça, já tentei várias outras coisas mas não deu certo. Agradeço desde já a ajuda de vocês Alex Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Dezembro 21, 2008 tblDocumentos (docsID, Documento) tblTramitação (tramID, docsID, Destino, Data) select * from from tblTramitação b , tblDocumentos c , ( select docsID , Max(Data) ultimo_dia from tblTramitação group by docsID ) a where a.docsID = b.docsID AND a.docsID = c.docsID AND b.Data = a.ultimo_dia AND b.destino = 'Seção b' Compartilhar este post Link para o post Compartilhar em outros sites
Alex_DTP 0 Denunciar post Postado Dezembro 22, 2008 Valeu giesta, Perfeito. R E S O L V I D O ! ! ! Brigadão, Alex Compartilhar este post Link para o post Compartilhar em outros sites