Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Contar registro em intervalos de horas


Thiago de A. C. Monteiro

Question

Tenho uma tabela de atendimento, onde na coluna "created_at" é salvo a data e hora do atendimento tipo '2011-12-21 19:00:00', e preciso fazer um select que conte o numero de atendimentos por dia por faixa de horário. O resultado deve ser como exibido abaixo:

Data 10h-12h 12h-14h 14h-16h 16h-18h 18h-20h 20h-22h

2011-12-21 10 15 17 22 36 12

2011-12-22 08 17 22 36 12 08

2011-12-23 06 17 22 36 12 00

2011-12-24 15 17 22 36 12 03

2011-12-25 10 15 17 22 36 12

2011-12-26 10 15 17 22 36 12

Os números acima são apenas para ilustrar o resultado final.

Alguém pode me ajudar?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

'Thiago de A. C. Monteiro',

Criei e carregei uma tabela em meu banco de teste para gerar o exemplo abaixo.

Tabela:

CREATE TABLE `minhahora` (
  `campo` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Consulta
SELECT DATE(campo) AS `data`, 
SUM(IF(TIME(campo) >= '10:00:00' AND TIME(campo) < '12:00:00', 1,0)) AS `10h-12h`, 
SUM(IF(TIME(campo) >= '12:00:00' AND TIME(campo) < '14:00:00', 1,0)) AS `12h-14h`, 
SUM(IF(TIME(campo) >= '14:00:00' AND TIME(campo) < '16:00:00', 1,0)) AS `14h-16h`,
SUM(IF(TIME(campo) >= '16:00:00' AND TIME(campo) < '18:00:00', 1,0)) AS `16h-18h`
FROM minhahora
GROUP BY DATE(campo)

Agora você pode adaptar o script à sua necessidade.

Link to comment
Share on other sites

  • 0

Denis,

É minha primeira experiência em perguntar algo em Fórum.

Graças a você, termino este tópico extremamente satisfeito com o resultado. E vou além, à partir de hoje vou me comprometer a tb compartilhar aquilo que sei com outras pessoas respondendo os tópicos deste fórum. Parabéns, funcionou perfeitamente.

Muiiiito Obrigado.

Felicidades.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...