ULTIMA ACAO SQL

USUARIO.EXCLUIDOS 05/07/2007 13:01:32
#224813
PESSOAL,

ESTOU COM UM PROBLEMÃO NO SQL, TENHO UMA TABELA QUE TEM A SEGUINTE ESTRUTURA

NUMEROCONTRATO-VARCHAR 50
DESCRICAOAGENDAMENTO - VARCHAR 100
DATAHORAMUDANCA - DATETIME

E NESTA TABELA TENHO A SEGUINTE ORDEM DE DADOS

NUMEROCONTRATO DESCRICAOAGENDAMENTO DATAHORAMUDANCA
0000788080003001 CASOS NOVOS 2007-03-21 20:04:32.000
0000788080003001 PROMESSA 2007-04-10 19:02:32.000
0000788080003001 PROMESSA EM DIA 2007-04-20 08:35:54.000
0000788080003001 PROMESSA EM ATRASO 2007-05-01 06:00:07.000
0000788080003001 ACORDO EM DIA 2007-05-02 08:26:16.000
0001288130003001 CASOS NOVOS 2007-03-20 20:17:45.000
0001288130003001 ACORDO EM DIA 2007-03-23 12:47:09.000
0001288130003001 PROMESSA EM DIA 2007-03-24 06:01:50.000
0001288130003001 ACORDO EM DIA 2007-03-27 15:48:23.000

O PROBLEMA E O SEGUINTE PRECISO SELECIONAR A ULTIMA DESCRICAOAGENDAMENTO DE CADA CONTRATO, SO QUE O SELECT QUE ESTOU USANDO NAO FUNCIONA POIS ELE ME TRAS A TODOS OS DADOS

SEGUE MEU SELECT:

 
SELECT A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,MAX(DATAHORAMUDANCA) DATAHORA
FROM HISTORICO_DE_AGENDAMENTOS A
GROUP BY A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,DATAHORAMUDANCA
ORDER BY A.NUMEROCONTRATO,DATAHORAMUDANCA


COMO POSSO FAZER ESTA CONSULTA, SO RETORNANDO A ULTIMA DESCRICAO ????

ATT,
MARCELO BRESSAN
USUARIO.EXCLUIDOS 05/07/2007 13:12:10
#224816

tenta isso

SELECT A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,MAX(DATAHORAMUDANCA) DATAHORA
FROM HISTORICO_DE_AGENDAMENTOS A
GROUP BY A.NUMEROCONTRATO
ORDER BY A.NUMEROCONTRATO,DATAHORAMUDANCA


boa sorte
USUARIO.EXCLUIDOS 05/07/2007 13:16:34
#224818
DEU ERRADO...

O SQL EXIGE QUE AGRUPE TODAS AS COLUNAS SETADAS NA QUERY...

ATT,

MARCELO BRESSAN
USUARIO.EXCLUIDOS 05/07/2007 13:38:26
#224820
Resposta escolhida
SELECT DISTINCT A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,MAX(DATAHORAMUDANCA) DATAHORA
FROM HISTORICO_DE_AGENDAMENTOS A
GROUP BY A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,DATAHORAMUDANCA
NÃO PRECISA DE ORDER BY O PRÓPRIO GROUP BY FAZ ISTO é SÓ VC DIZER QUAL VC QUER PRIMEIRO
EXEMPLO:
GROUP BY DESCRICAOAGENDAMENTO,DATAHORAMUDANCA,A.NUMEROCONTRATO
GROUP BY DATAHORAMUDANCA,DESCRICAOAGENDAMENTO,A.NUMEROCONTRATO
ESPERO Q TE AJUDE
USUARIO.EXCLUIDOS 05/07/2007 13:44:23
#224821
MARCELO, tente esta query abaixo (Fiz umas modificações):


SELECT A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,DATAHORAMUDANCA
FROM HISTORICO_DE_AGENDAMENTOS A WHERE DATAHORAMUDANDA = (SELECT MAX(DATAHORAMUDANCA) FROM HISTORICO_DE_AGENDAMENTOS)

ESPERO TER AJUDADO.
USUARIO.EXCLUIDOS 05/07/2007 14:17:47
#224835


Marcelão olha..eu mudei os nomes dos campos pra testar aki e tal..é só substituir, veja se funciona do jeito q precisa

Tela = Tabela

SELECT Tela.Contrato, Max(Tela.Data) AS MáxDeData FROM Tela GROUP BY Tela.Contrato ORDER BY Tela.Contrato, Max(Tela.Data)

Espero q de certo...boa sorte



Tópico encerrado , respostas não são mais permitidas