Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tchaves

Comparativo entre 3 meses

Recommended Posts

Olá pessoal, bom dia!

 

Mais uma vez preciso da ajuda dos senhores(as).

 

Pretendo fazer um comparativo entre meses. A pessoa cai em uma tela que tem que escolher um período, aí com SQL, pretendo pegar as informações na base daquele período(mês) e também trazer as informações dos outros dois meses anterior. Eu não faço a mínima idéia de como fazer isso, mas já tenho a query que pega o período informado pelo browser. Alguém que já tenha passado por algo parecido e queira compartilhar a solução. Desde já agradeço!

 

SELECT queue.name AS Filas, COUNT(*) Quantidade FROM ticket, queue WHERE ticket.create_time BETWEEN '2015-07-16' and '2015-07-22' AND ticket.queue_id = queue.id AND queue.valid_id = 1 GROUP BY queue.name;
+-------------------------------------------+------------+
| Filas | Quantidade |
+-------------------------------------------+------------+
| Grupo de Operação Service Desk | 44 |
| Grupo Especialista de Segurança | 16 |
+-------------------------------------------+------------+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de fazer a comparação com os outros meses. Porque aí só está o mês que a pessoa inseriu no browser, tipo, a pessoa colocando: 01/07/2015 a 31/07/2015, do jeito que está vai trazer apenas informações de julho. Queria que ele trouxesse dados dos outros dois meses anterior e separasse certinho estes dados para eu criar 3 gráficos de torres com informações de cada mês. Assim eu saberia qual foi o mês que um determinado grupo atendendeu mais e outros indicadores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo como

SELECT month(ticket.create_time) mes,queue.name AS Filas, COUNT(*) Quantidade 
FROM ticket, queue  
WHERE ticket.create_time  BETWEEN '2015-05-16' and '2015-07-22'  
AND ticket.queue_id = queue.id 
AND queue.valid_id = 1  
GROUP BYmonth(ticket.create_time), queue.name

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Motta, obrigado pela resposta.

 

Porém quando rodei esta solução, notei um pequeno contratempo. Vou mostrar as informações:

 

Pesquisa pelo mês fechado

SELECT MONTH(ticket.create_time) Month, queue.name AS Filas, COUNT(*) Quantidade FROM ticket, queue WHERE ticket.create_time BETWEEN '2015-07-01' and '2015-07-31' AND ticket.queue_id = queue.id AND queue.valid_id = 1 GROUP BY month(ticket.create_time), queue.name;
+-------+-------------------------------------------+------------+
| Month | Filas | Quantidade |
+-------+-------------------------------------------+------------+
| 7 | Grupo de Operação Service Desk | 439 |
| 7 | Grupo Especialista Segurança da Informação | 102 |
+-------+-------------------------------------------+------------+

 

Pesquisa comparando os meses

SELECT MONTH(ticket.create_time) Month, queue.name AS Filas, COUNT(*) Quantidade FROM ticket, queue WHERE ticket.create_time BETWEEN '2015-07-01' and '2015-08-10' AND ticket.queue_id = queue.id AND queue.valid_id = 1 GROUP BY month(ticket.create_time), queue.name;
+-------+-------------------------------------------+------------+
| Month | Filas | Quantidade |
+-------+-------------------------------------------+------------+
| 7 | Grupo de Operação Service Desk | 462 |
| 7 | Grupo Especialista Seguraça da Informação | 105 |
| 8 | Grupo de Operação Service Desk | 122 |
| 8 | Grupo Especialista Segurança da Informação 14 |
+-------+-------------------------------------------+------------+

 

Percebam que os números do mês 07 está errado em ambas filas. A pesquisa de mês cheio trouxe um resultado e a pesquisa com comparativos entre os dois meses trouxe outro. Alguém sabe o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trunque a data antes de fazer a comparação , pode ser a hora do último dia , creare_time tem a data e hora comparar por 31.7.15 assume 0:00 h , "se perde" todo o dia 3 , quandacse busca por 2 meses se resolve (para 7)

 

Solucao truque a data

 

 

ou

 

 

compare com a hora

1/7/15 00:00:00 31/7/15 23:59:59

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por mais uma resposta Motta! Mas o Truque da data seria algo assim? Se for ainda não deu o resultado que eu estava esperando.

SELECT MONTH(ticket.create_time) Month, queue.name AS Filas, COUNT(*) Quantidade FROM ticket, queue
WHERE ticket.create_time BETWEEN '2015-07-01 00:00:00' and '2015-08-14 23:59:59'
AND ticket.queue_id = queue.id
AND queue.valid_id = 1
GROUP BY month(ticket.create_time), queue.name;
+-------+-------------------------------------------+------------+
| Month | Filas | Quantidade |
+-------+-------------------------------------------+------------+
| 7 | Grupo de Operação Service Desk | 462 |
| 7 | Grupo Especialista Segurança da Informação | 105 |
| 8 | Grupo de Operação Service Desk | 122 |
| 8 | Grupo Especialista Segurança da Informação | 14 |
+-------+-------------------------------------------+------------+

 

O resultado esperado seria assim:

 

SELECT MONTH(ticket.create_time) Month, queue.name AS Filas, COUNT(*) Quantidade FROM ticket, queue WHERE ticket.create_time BETWEEN '2015-07-01' and '2015-07-31' AND ticket.queue_id = queue.id AND queue.valid_id = 1 GROUP BY month(ticket.create_time), queue.name;
+-------+-------------------------------------------+------------+
| Month | Filas | Quantidade |
+-------+-------------------------------------------+------------+
| 7 | Grupo de Operação Service Desk | 439 |
| 7 | Grupo Especialista Segurança da Informação | 102 |
+-------+-------------------------------------------+------------+

Compartilhar este post


Link para o post
Compartilhar em outros sites

O 2º sql ficou sem o "truque" , tente com ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.