Usuário com melhor resposta
select por hora q agrupe registros distintos no dia

Pergunta
-
eu preciso de um select q agrupasse registros distintos no dia, mas quero saber a hora desses registros...
daí, por causa disso, se eu agrupar por hora ele vai contar registros repetidos no mesmo dia....por ex:
select COUNT(*) qtde, a.registro, convert(date,a.data,103) as data
from (select registro,data from tabela where convert(date,data,103) = convert(date,'14/05/2015',103) group by registro,data) agroup by a.registro, convert(date,a.data,103)SE EU QUISER SABER A HORA É SÓ MUDAR O CONVERT PARA datetime...SÓ QUE ISSO CONTA OS REGISTROS REPETIDOS NO DIA
Respostas
-
Experimente dessa forma:
select registro, convert(date, data, 103) as data, min(CONVERT(TIME, data , 103)) as hora from tabela where convert(date, data, 103) = convert(date, '14/05/2015', 103) group by registro, convert(date, data, 103)
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta CeiltonLM quinta-feira, 14 de maio de 2015 20:39
- Marcado como Resposta Eduardo.Romero sexta-feira, 15 de maio de 2015 13:35
Todas as Respostas
-
Bom dia,
Qual é o tipo de dados da coluna Data?
Qual horário deve ser retornado se houverem várias linhas para um mesmo a.registro? Ou devem ser retornadas todas as linhas do dia?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
Se um registro tem cinco com ocorrências em um dia, cada ocorrência com uma datahora diferente, se você agrupa por dia, não tem como você saber a hora do agrupamento.
Como o SQL vai escolher uma hora dos cinco registros para considerar a hora do grupo????
- Editado CeiltonLM quinta-feira, 14 de maio de 2015 19:37
-
se eu agrupar por data, beleza, funciona!
select COUNT(*) qtde, a.registro, convert(date,a.data,103) as data
from (select registro,data from tabela where convert(date,data,103) = convert(date,'14/05/2015',103) group by registro,data) agroup by a.registro, convert(date,a.data,103)mas se eu quiser saber a hora (invés de date usar datetime no convert), mesmo agrupando por data, repete os registros do dia...
-
Supondo que existam 10 horários diferentes para o mesmo dia, qual deles deve ser retornado?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
Experimente dessa forma:
select registro, convert(date, data, 103) as data, min(CONVERT(TIME, data , 103)) as hora from tabela where convert(date, data, 103) = convert(date, '14/05/2015', 103) group by registro, convert(date, data, 103)
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta CeiltonLM quinta-feira, 14 de maio de 2015 20:39
- Marcado como Resposta Eduardo.Romero sexta-feira, 15 de maio de 2015 13:35
-