PEGAR MAIOR HORARIO EM UMA DATA

 Tópico anterior Próximo tópico Novo tópico

PEGAR MAIOR HORARIO EM UMA DATA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#490558 - 30/09/2019 19:07:09

FERRUBIM
PORTO ALEGRE
Cadast. em:Novembro/2012


Tenho o comando abaixo porem preciso pegar a maior hora da maior data ...no exemplo abaixo trago a maior data porem com todos estes registros, queria trazer apenas o registro da hora 17:11:25...
no comando abaixo como posso fazer isso (esta na tabela Ocorrencia)

joao da sila     2019-09-16 00:00:00    10:59:03
joao da sila    2019-09-16 00:00:00    11:04:22
joao da sila    2019-09-16 00:00:00    11:47:47
joao da sila    2019-09-16 00:00:00    12:56:33
joao da sila    2019-09-16 00:00:00    14:26:31
joao da sila    2019-09-16 00:00:00    14:27:46
joao da sila    2019-09-16 00:00:00    17:11:25



SELECT a.NomeCliente, b.Nome, C.NrParcela, D.DtOcorrencia, d.HrOcorrencia ,  d.ObservacaoOcorrencia, E.NomeSistema , F.NrContrato
FROM Cliente as A
INNER JOIN Usuario as B
                on A.UsuarioIdResponsavel  = B.UsuarioId AND
                 A.DtExclusao is null

INNER JOIN Contrato as F
                on A.ClienteId  = F.ClienteId

                INNER JOIN Parcela  as C
on A.ClienteId  = C.ClienteId AND  F.ContratoId  = C.ContratoId and
C.NrParcela = (SELECT MIN(NrParcela) from parcela where
parcela.DtPagamento is null )

INNER JOIN Ocorrencia  as D
on A.ClienteId  = D.ClienteId AND   F.ContratoId  = d.ContratoId and
d.DtOcorrencia = (SELECT max(DtOcorrencia) from Ocorrencia)

INNER JOIN Banco as E
                on A.BancoId  = e.BancoId
                ORDER BY   a.NomeCliente ,b.Nome



#490559 - 30/09/2019 19:54:50

FOXMAN
BARRETOS
Cadast. em:Janeiro/2001


Membro da equipe
Tasca um LIMIT 1 no final da Query (
SELECT max(DtOcorrencia) from Ocorrencia LIMIT 1
)  e veja se dar certo


Grupo DotNet.Br no FaceBook

Grupo WhatsDev



#490560 - 30/09/2019 19:57:20

FERRUBIM
PORTO ALEGRE
Cadast. em:Novembro/2012


Mensagem 102, Nível 15, Estado 1, Linha 36
Sintaxe incorreta próxima a '1'.



SELECT a.NomeCliente, b.Nome, C.NrParcela, D.DtOcorrencia, d.HrOcorrencia ,  d.ObservacaoOcorrencia, E.NomeSistema , F.NrContrato
FROM Cliente as A
INNER JOIN Usuario as B
                on A.UsuarioIdResponsavel  = B.UsuarioId AND
                 A.DtExclusao is null
INNER JOIN Contrato as F
                on A.ClienteId  = F.ClienteId
                INNER JOIN Parcela  as C
on A.ClienteId  = C.ClienteId AND  F.ContratoId  = C.ContratoId and
C.NrParcela = (SELECT MIN(NrParcela) from parcela where
parcela.DtPagamento is null )
INNER JOIN Ocorrencia  as D
on A.ClienteId  = D.ClienteId AND   F.ContratoId  = d.ContratoId and
d.DtOcorrencia = (SELECT max(DtOcorrencia) from Ocorrencia )
INNER JOIN Banco as E
                on A.BancoId  = e.BancoId
                ORDER BY   a.NomeCliente ,b.Nome



#490561 - 30/09/2019 19:59:59

FERRUBIM
PORTO ALEGRE
Cadast. em:Novembro/2012


SELECT a.NomeCliente, b.Nome, C.NrParcela, D.DtOcorrencia, d.HrOcorrencia ,  d.ObservacaoOcorrencia, E.NomeSistema , F.NrContrato
FROM Cliente as A
INNER JOIN Usuario as B
                on A.UsuarioIdResponsavel  = B.UsuarioId AND
                 A.DtExclusao is null
INNER JOIN Contrato as F
                on A.ClienteId  = F.ClienteId
                INNER JOIN Parcela  as C
on A.ClienteId  = C.ClienteId AND  F.ContratoId  = C.ContratoId and
C.NrParcela = (SELECT MIN(NrParcela) from parcela where
parcela.DtPagamento is null )
INNER JOIN Ocorrencia  as D
on A.ClienteId  = D.ClienteId AND   F.ContratoId  = d.ContratoId and
d.DtOcorrencia = (SELECT max(DtOcorrencia) from Ocorrencia LIMIT 1)
INNER JOIN Banco as E
                on A.BancoId  = e.BancoId
                ORDER BY   a.NomeCliente ,b.Nome





Resposta escolhida #490562 - 30/09/2019 20:09:33

FOXMAN
BARRETOS
Cadast. em:Janeiro/2001


Membro da equipe
Não sei qual é o banco.

Nesse resultado....

Citação:
  joao da sila     2019-09-16 00:00:00    10:59:03
joao da sila    2019-09-16 00:00:00    11:04:22
joao da sila    2019-09-16 00:00:00    11:47:47
joao da sila    2019-09-16 00:00:00    12:56:33
joao da sila    2019-09-16 00:00:00    14:26:31
joao da sila    2019-09-16 00:00:00    14:27:46
joao da sila    2019-09-16 00:00:00    17:11:25


Qual o nome da coluna que representa 17:15:25 ???
Acredito que o segundo valor seja o dtOcorrencia, correto ???

Se for, mude Max(DtOcorrencia) para o nome da coluna que contem o valor da Hora,
Tomando o cuidado de também manter um Max na Data.





Grupo DotNet.Br no FaceBook

Grupo WhatsDev



#490563 - 30/09/2019 20:10:59

FOXMAN
BARRETOS
Cadast. em:Janeiro/2001


Membro da equipe
Outra coisa....
Tenta um select separado para ver o resultado... tipo :

SELECT MAX(p.dtVenda) FROM tblpedidos p order BY p.dtVenda asc limit 1

Aqui funciona normal essa query


Grupo DotNet.Br no FaceBook

Grupo WhatsDev



#490566 - 01/10/2019 08:16:50

FERRUBIM
PORTO ALEGRE
Cadast. em:Novembro/2012


banco de dados é sql server 2014



#490578 - 02/10/2019 08:21:42

LUIZCOMINO
SAO PAULO
Cadast. em:Maio/2009


Citação:
:
Tasca um LIMIT 1 no final da Query (
SELECT max(DtOcorrencia) from Ocorrencia LIMIT 1
)  e veja se dar certo


Tente a Query que o FOXMAN colocou, mas mude o LIMIT 1

no caso do sql server:

SELECT top 1 max(DtOcorrencia) from Ocorrencia

"E conhecereis a verdade, e a verdade vos libertará. João 8:32"


#490579 - 02/10/2019 09:53:05

OCELOT
SOROCABA
Cadast. em:Março/2012


O que você quer é um

SELECT TOP 1 CamposQueQuer FROM SuaTabela ORDER BY CampoData DESC, CampoHora DESC

Porém só vai funcionar se for possível organizar o campo de hora corretamente, isso depende do tipo de dados que usou, que ao meu ver nem precisava de duas colunas, só uma datetime poderia ter os dois juntos e seria muito mais simples.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por FERRUBIM em 02/10/2019 09:53:45