Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezado,
Estou precisando do seguinte:
Tenho uma tabela chamada Entrega e outra chamada Historico.
Uma entrega pode ter vários históricos.
Preciso selecionar o último status do histórico das entregas.
Ou seja, todas as entregas que foram feitas em um determinado dia, porém com o seu último status.
Tentei algo do tipo:
SELECT DISTINCT (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 ) AS PEDIDO,
(SELECT RESPOSTA FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 AND H.ID = (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 )) AS RESPOSTA,
(SELECT MOTOBOY FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 AND H.ID = (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 )) AS MOTOBOY ,
(SELECT H.NOME_RECEBEDOR FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 AND H.ID = (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 )) AS RECEBEDOR ,
(SELECT H.DOC_RECEBEDOR FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 AND H.ID = (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 )) AS DOCUMENTO_RECEBEDOR ,
(SELECT DATE_FORMAT(E.DATA_CAD,'%d/%m/%Y') FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 AND H.ID = (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 )) AS CAD_MERCADORIA ,
(SELECT E.COD_IDE FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 AND H.ID = (SELECT MAX(H.ID) FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724 )) AS NUM_PEDIDO
FROM ENTREGA AS E, HISTORICO AS H
WHERE E.AR = H.AR AND H.data BETWEEN( '2013-01-30' ) AND ( '2013-02-06' ) AND E.AR = 110724
Mas não está funcionando.
Alguém poderia me ajudar por gentileza?
Carregando comentários...