Agrupar por data

05/11/2012

0

Bom dia senhores, estou precisando montar uma consulta onde me traga as datas e quantas batidas (acesso ao refeitório) tive.
Porem a tabela esta em datetime, e esta agrupanto por minuto.
Segue abaixo minha consulta, se alguem puder ajudar agradeço:

select l.mov_datahora, count(l.mov_datahora) from log_credencial l JOIN pessoas p
ON l.pes_numero = p.pes_numero
where l.mov_datahora between '20121001' and '20121015'
and l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) > '10:30'
AND l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) < '14:00'
and l.eqpi_numero = 2
group by l.mov_datahora
order by l.mov_datahora
Joao Gorgonha

Joao Gorgonha

Responder

Posts

05/11/2012

Claudia Nogueira

Tentou assim:

select CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) AS mov_datahora, count(l.mov_datahora) from log_credencial l JOIN pessoas p
ON l.pes_numero = p.pes_numero
where l.mov_datahora between '20121001' and '20121015'
and l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) > '10:30'
AND l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) < '14:00'
and l.eqpi_numero = 2
group by 1
order by 1
Responder

05/11/2012

Joao Gorgonha

Infelizmente nao resolveu, a consulta esta vindo assim?

01/10/2012 00:00:00	1
01/10/2012 00:00:00	5
01/10/2012 00:00:00	7
01/10/2012 00:00:00	4
01/10/2012 00:00:00	1
01/10/2012 00:00:00	4
01/10/2012 00:00:00	2
01/10/2012 00:00:00	1

Responder

05/11/2012

Claudia Nogueira

Faltou colocar o mesmo código no count.
Tenta assim:

select CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) AS mov_datahora, count(CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime)) from log_credencial l JOIN pessoas p
ON l.pes_numero = p.pes_numero
where l.mov_datahora between '20121001' and '20121015'
and l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) > '10:30'
AND l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) < '14:00'
and l.eqpi_numero = 2
group by 1
order by 1

Responder

05/11/2012

Claudia Nogueira

Faltou colocar o mesmo código no count.
Tenta assim:

select CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) AS mov_datahora, count(CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime)) from log_credencial l JOIN pessoas p
ON l.pes_numero = p.pes_numero
where l.mov_datahora between '20121001' and '20121015'
and l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) > '10:30'
AND l.mov_datahora - CAST(FLOOR(CAST(l.mov_datahora AS float)) AS datetime) < '14:00'
and l.eqpi_numero = 2
group by 1
order by 1

Responder

05/11/2012

Joao Gorgonha

Boa Claudia,
Na verdade faltou por a instruçao no Group By, ficou assim:
select CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime) AS mov_datahora, count(mov_datahora) from log_credencial
where mov_datahora between '20121001' and '20121015'
and mov_datahora - CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime) > '10:30'
AND mov_datahora - CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime) < '14:00'
and eqpi_numero = 2
group by CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime)
order by mov_datahora



Muito obrigado.
Responder

05/11/2012

Claudia Nogueira

No SQL que eu te mandei tinha isso: group by 1.
Quando você usa o número do campo ele já pega automaticamente o que estava na sentença SQL, por isso não coloquei no group nem no order.
Dá no mesmo.

Boa Claudia,
Na verdade faltou por a instruçao no Group By, ficou assim:
select CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime) AS mov_datahora, count(mov_datahora) from log_credencial
where mov_datahora between '20121001' and '20121015'
and mov_datahora - CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime) > '10:30'
AND mov_datahora - CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime) < '14:00'
and eqpi_numero = 2
group by CAST(FLOOR(CAST(mov_datahora AS float)) AS datetime)
order by mov_datahora



Muito obrigado.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar