Agrupar por data
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:
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
Curtidas 0
Respostas
Claudia Nogueira
05/11/2012
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
GOSTEI 0
Joao Gorgonha
05/11/2012
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
GOSTEI 0
Claudia Nogueira
05/11/2012
Faltou colocar o mesmo código no count.
Tenta assim:
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
GOSTEI 0
Claudia Nogueira
05/11/2012
Faltou colocar o mesmo código no count.
Tenta assim:
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
GOSTEI 0
Joao Gorgonha
05/11/2012
Boa Claudia,
Na verdade faltou por a instruçao no Group By, ficou assim:
Muito obrigado.
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.
GOSTEI 0
Claudia Nogueira
05/11/2012
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.
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:
Muito obrigado.
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.
GOSTEI 0