ULTIMA ACAO SQL
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:
COMO POSSO FAZER ESTA CONSULTA, SO RETORNANDO A ULTIMA DESCRICAO ????
ATT,
MARCELO BRESSAN
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
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
DEU ERRADO...
O SQL EXIGE QUE AGRUPE TODAS AS COLUNAS SETADAS NA QUERY...
ATT,
MARCELO BRESSAN
O SQL EXIGE QUE AGRUPE TODAS AS COLUNAS SETADAS NA QUERY...
ATT,
MARCELO BRESSAN
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
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
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.
SELECT A.NUMEROCONTRATO,DESCRICAOAGENDAMENTO,DATAHORAMUDANCA
FROM HISTORICO_DE_AGENDAMENTOS A WHERE DATAHORAMUDANDA = (SELECT MAX(DATAHORAMUDANCA) FROM HISTORICO_DE_AGENDAMENTOS)
ESPERO TER AJUDADO.
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