Ir para conteúdo

POWERED BY:

Arquivado

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

fagnerguima

Relacionamento - select MAX

Recommended Posts

A pessoal, estou com o seguinte cenário:tenho uma tabela que controla do o progresso de um pedido. nessa tabela tem os seguintes campos:idGeraldatabelaidPedidoisStatusDataAlteraçãoDessa forma vou gerar um histórico de cada passo do pedido no sistema. Qdo o funcionário abre o pedido, insere um campo nessa tabela mais ou menos assim:idGeraldatabela = 1idPedido = 00047isStatus = 1DataAlteração = 01/10/2007Quando esse pedido passa para uma outra etapa, insere um novo registro com esses dados:idGeraldatabela = 1idPedido = 00047isStatus = 2 - (MUDA O STATUS DO PEDIDO, INFORMANDO QUE ESTÁ NO PASSO 2)DataAlteração = 01/10/2007Pois bem.. quero em determinado momento pegar nessa tabela todos os pedidos que estão com o idStatus = 1, ou seja, no passo 1 de produção. Lembre-se de que eu preciso ir adicionando novos registros, não posso editar o mesmo registro pq senão perco o histórico.Pensei em uma busca que agrupasse pelo idPedido, sendo que o Max(idStatus) daquele idPedido seja igual a 1. Mas não sei como fazer esse select que pegue somente os pedidos que ainda não estejam mum próximo passo (idStatus)Se tiver complicado de entender peçam mais explicações, por favorMuito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para agrupar e achar o maior valor de isStatus de cada Pedido voce pode fazer assim:

SELECT MAX(isStatus), idPedido FROM tabela GROUP BY idPedido, isStatus;

agora juntando o HAVING voce pode conseguir o que precisa.

SELECT MAX(isStatus), idPedido FROM tabela GROUP BY idPedido, isStatus HAVING isStatus = 1;

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.