Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
>
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.
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)>
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.
Retorna a máxima DATAMUDANCA para cada par de IDPRJ, POSICAO distintos.
Era isto ?