Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos,
Tenho uma tabela com a seguinte estrutura:
Item | DataEntrega | Status
1 | 12/11/13 | 6
1 | 12/11/13 | 7
1 | 21/01/14 | 6
1 | 21/01/14 | 7
2 | 15/12/13 | 5
2 | 15/12/13 | 6
2 | 15/12/13 | 7
2 | 14/01/14 | 5
2 | 14/01/14 | 6
Eu preciso checar em cada item, cada data de entrega e pegar o status mais alto daquela respectiva data de entrega. Ou seja, gostaria de retornar assim:
Item | DataEntrega | Status
1 | 12/11/13 | 7
1 | 21/01/14 | 7
2 | 15/12/13 | 7
2 | 14/01/14 | 6
Gostaria de saber se é possível fazer isso usando somente comandos SQL... Como não tenho muito conhecimento, gostaria da ajuda dos senhores.
Obrigado.
Obrigado Mota
Agora surgiu uma outra duvida: Como eu pego o menor valor de Status a partir desta consulta?
select Item , DataEntrega , max(Status) max_status , min(Status) min_status
from tabela
group by Item , DataEntrega
Obrigado por responder mota.
Mas na verdade eu preciso pegar o MIN() do resultado da query abaixo e nao incluir ela na consulta.
select max(Status) max_status from tabela group by Item , DataEntrega
seria isto ?
select min(max_status) min_max_status
from
(
select Item , DataEntrega , max(Status) max_status
from tabela
group by Item , DataEntrega
) virtual
Isso mesmo mota, muito obrigado.
Resolvido!
max com group by
select Item , DataEntrega , max(Status) max_status
from tabela
group by Item , DataEntrega