PEGAR PRIMEIRO REGISTRO POR DIA
Olá pessoal,
Preciso de um help quanto a elaboração de uma query.
Tenho uma tabela onde é registrado o HORIMETRO de um carro e a DATA/HORA de sua inserção no banco.
Preciso DE uma query que me retornar o primeiro HORIMETRO por dia.
Segue exemplo da tabela:
HOR DATA_HORIMETRO
253438 2016-10-13 18:52:28
253438 2016-10-13 18:52:28
253438 2016-10-13 18:52:32
253438 2016-10-14 14:46:24
253438 2016-10-14 14:48:30
253438 2016-10-14 14:52:43
253438 2016-10-14 15:39:08
253438 2016-10-14 15:44:09
253438 2016-10-17 08:17:54
253438 2016-10-17 08:50:11
253438 2016-10-17 08:57:18
253438 2016-10-17 09:02:19
253438 2016-10-17 09:22:21
253438 2016-10-17 14:20:51
253438 2016-10-18 08:25:09
253438 2016-10-18 08:26:19
253438 2016-10-18 08:58:39
Preciso de um help quanto a elaboração de uma query.
Tenho uma tabela onde é registrado o HORIMETRO de um carro e a DATA/HORA de sua inserção no banco.
Preciso DE uma query que me retornar o primeiro HORIMETRO por dia.
Segue exemplo da tabela:
HOR DATA_HORIMETRO
253438 2016-10-13 18:52:28
253438 2016-10-13 18:52:28
253438 2016-10-13 18:52:32
253438 2016-10-14 14:46:24
253438 2016-10-14 14:48:30
253438 2016-10-14 14:52:43
253438 2016-10-14 15:39:08
253438 2016-10-14 15:44:09
253438 2016-10-17 08:17:54
253438 2016-10-17 08:50:11
253438 2016-10-17 08:57:18
253438 2016-10-17 09:02:19
253438 2016-10-17 09:22:21
253438 2016-10-17 14:20:51
253438 2016-10-18 08:25:09
253438 2016-10-18 08:26:19
253438 2016-10-18 08:58:39
Ricardson Couto
Curtidas 0
Respostas
Calebe Menezes
25/04/2017
Olá Ricardson tudo bem?
Você tem mais alguma coluna, tipo a coluna de id?
Você poderia limitar a query para trazer o primeiro resutlado ordenando pela data mais antiga do dia.
Você iria precisar de um WHERE e um ORDER BY para isso.
Tá meio misturado os dados e não consegui identificar o que é o que aí.
Passa as colunas da tabela para eu ver
Você tem mais alguma coluna, tipo a coluna de id?
Você poderia limitar a query para trazer o primeiro resutlado ordenando pela data mais antiga do dia.
Você iria precisar de um WHERE e um ORDER BY para isso.
Tá meio misturado os dados e não consegui identificar o que é o que aí.
Passa as colunas da tabela para eu ver
GOSTEI 0
Rafael Oliveira
25/04/2017
Boa noite Ricardo Couto,
para realizar essa consulta, na minha opinião o necessário é fazer um tratamento nessa coluna, para que fique somente a parte do campo data hora.
Fiz uns procedimentos para simular sua dúvida e desenvolvi o tratamento e as consultas para conseguir trazer a primeira do dia corrente e de qualquer dia que desejar.
Espero ter te ajudado e desejo boa sorte em sua jornada!
para realizar essa consulta, na minha opinião o necessário é fazer um tratamento nessa coluna, para que fique somente a parte do campo data hora.
Fiz uns procedimentos para simular sua dúvida e desenvolvi o tratamento e as consultas para conseguir trazer a primeira do dia corrente e de qualquer dia que desejar.
Espero ter te ajudado e desejo boa sorte em sua jornada!
/* Criei uma tabela chamada horimetro com a coluna DATA_HORIMETRO (NVARCHAR) E HORA (DATETIME)*/ /* INSERI ALGUNS VALORES PARA TESTE */ USE [TESTE] GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-13 18:52:28') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-13 18:52:28') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-13 18:52:32') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-14 14:46:24') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-14 14:48:30') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-14 14:52:43') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-14 15:44:09') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-17 08:17:54') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-17 08:50:11') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-17 08:57:18') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-17 09:02:19') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-17 09:22:21') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-17 14:20:51') GO INSERT INTO [dbo].[HORIMETRO] ([DATA_HORIMETRO]) VALUES ('253438 2016-10-18 08:25:09') GO SELECT * FROM HORIMETRO SELECT RTRIM(LTRIM(SUBSTRING(DATA_HORIMETRO,8,20))) FROM HORIMETRO /* Convertendo para data e pegando depois do código, para ficar somente com a data*/ BEGIN TRAN UPDATE HORIMETRO SET HORA = CAST(RTRIM(LTRIM(SUBSTRING(DATA_HORIMETRO,8,20))) AS datetime) --COMMIT ROLLBACK /*Para pegar a primeira do dia corrente*/ SELECT TOP(1) * FROM HORIMETRO WHERE YEAR(HORA) = YEAR(GETDATE()) AND MONTH(HORA) = MONTH(GETDATE()) AND DAY(HORA) = DAY(GETDATE()) ORDER BY HORA /*Para pegar a primeira de qualquer dia que desejar*/ SELECT TOP(1) * FROM HORIMETRO WHERE YEAR(HORA) = 2016 AND MONTH(HORA) = 10 AND DAY(HORA) = 13 ORDER BY HORA DESC
GOSTEI 0
Rafael Oliveira
25/04/2017
Correção da ultima consulta:
/*Para pegar a primeira de qualquer dia que desejar*/ SELECT TOP(1) * FROM HORIMETRO WHERE YEAR(HORA) = 2016 AND MONTH(HORA) = 10 AND DAY(HORA) = 13 ORDER BY HORA ASC
GOSTEI 0