Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

_ P A K O _

Query ordenando campo

Recommended Posts

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?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A primeira coisa a fazer numa query destas é identá-la senão complica entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.