Ir para conteúdo

POWERED BY:

Arquivado

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

sfg

[Resolvido] clausula MAX

Recommended Posts

Boa tarde pessoal!

Estou com o seguinte problema:

 

Tenho uma consulta em uma tabela de histórico de projeto e preciso saber qual a última alteração no status do projeto e o respectivo status.

 

Quando utilizo a consulta abaixo, retorna os registros corretamente

 

SELECT IDPRJ, MAX(DATAMUDANCA)
FROM MPRJSTATUSLOG WHERE CODCOLIGADA = 1
GROUP BY  IDPRJ

 

Porém, necessito de mais uma coluna nesta consulta além do IDPRJ e DATAMUDANCA

 

SELECT IDPRJ, MAX(DATAMUDANCA), POSICAO
FROM MPRJSTATUSLOG WHERE CODCOLIGADA = 1
GROUP BY  IDPRJ, POSICAO

 

Neste caso a consulta esta retornando todos os registro da tabela e não somente a ultima data de alteração como necessito.

 

Alguém pode me ajudar?

 

Obrigado,

 

Sérgio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT IDPRJ, POSICAO , MAX(DATAMUDANCA)
FROM MPRJSTATUSLOG WHERE CODCOLIGADA = 1
GROUP BY  IDPRJ, POSICAO

 

Retorna a máxima DATAMUDANCA para cada par de IDPRJ, POSICAO distintos.

 

Era isto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT IDPRJ, POSICAO , MAX(DATAMUDANCA)
FROM MPRJSTATUSLOG WHERE CODCOLIGADA = 1
GROUP BY  IDPRJ, POSICAO

 

Retorna a máxima DATAMUDANCA para cada par de IDPRJ, POSICAO distintos.

 

Era isto ?

 

Eu preciso somente de 1 registro com a maior DATAMUDANCA PARA CADA IDPRJ, detalhe IDPRJ E DATAMUDANCA compoem a chave da tabela e a POSICAO é a coluna que contém o status da última alteração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente então

 

SELECT IDPRJ, POSICAO , DATAMUDANCA
FROM MPRJSTATUSLOG M1
WHERE CODCOLIGADA = 1
AND DATAMUDANCA = (SELECT MAX(DATAMUDANCA)
                  FROM MPRJSTATUSLOG M2 
                  WHERE M2.CODCOLIGADA = 1 
                  AND M2.IDPRJ = M1.IDPRJ)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente então

 

SELECT IDPRJ, POSICAO , DATAMUDANCA
FROM MPRJSTATUSLOG M1
WHERE CODCOLIGADA = 1
AND DATAMUDANCA = (SELECT MAX(DATAMUDANCA)
                  FROM MPRJSTATUSLOG M2 
                  WHERE M2.CODCOLIGADA = 1 
                  AND M2.IDPRJ = M1.IDPRJ)

 

DEU CERTO !!! É EXATAMENTE O QUE EU PRECISO.

 

OBRIGADO PELA FORÇA MOTTA, VOCÊ ESTA DE PARABÉNS.

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.