Fórum Pesquisa SQL para Gráfico #592809
27/04/2018
0
Preciso fazer uma consulta SQL que retorne o total de Tickets registrados em cada mês, para colocar em um gráfico. E não tenho minima ideia de como fazer isso. Ainda estou aprendendo por isso estou um pouco perdido, por favor alguém me ajude!
Estrutura para tabela `tickets`
CREATE TABLE IF NOT EXISTS `tickets` (
`id_tickets` int(11) NOT NULL,
`prior_tickets` varchar(45) DEFAULT NULL,
`origem_tickets` varchar(45) DEFAULT NULL,
`status_tickets` varchar(45) DEFAULT NULL,
`data_tickets` datetime DEFAULT NULL,
`adm_id_parc` int(11) NOT NULL)
Estrutura para tabela `tickets`
CREATE TABLE IF NOT EXISTS `tickets` (
`id_tickets` int(11) NOT NULL,
`prior_tickets` varchar(45) DEFAULT NULL,
`origem_tickets` varchar(45) DEFAULT NULL,
`status_tickets` varchar(45) DEFAULT NULL,
`data_tickets` datetime DEFAULT NULL,
`adm_id_parc` int(11) NOT NULL)

Daniel Schmitz
Curtir tópico
+ 0
Responder
Post mais votado
27/04/2018
Olá Daniela, veja se uma das formas apresentadas abaixo atende ao que você precisa:
1 2 3 4 5 6 7 | SELECT MONTH (data_tickets) AS Mes, COUNT (id_tickets) AS Qtde FROM tickets GROUP BY MONTH (data_tickets) SELECT CAST ( MONTH (data_tickets) as varchar ) + '/' + CAST ( Year (data_tickets) as varchar ) AS Mes, COUNT (id_tickets) AS Qtde FROM tickets GROUP BY CAST ( MONTH (data_tickets) as varchar ) + '/' + CAST ( Year (data_tickets) as varchar ) |
Jerson Boer

Responder
Gostei + 1
Mais Posts
28/04/2018
Daniel Schmitz
Obrigado pela ajuda, o código abaixo funcionou! Só mais uma dúvida teria uma forma de trazer o valor 0 quando não tem registros no mês??
1 2 3 | SELECT MONTH (data_tickets) AS Mes, COUNT (id_tickets) AS Qtde FROM tickets GROUP BY MONTH (data_tickets) |
Responder
Gostei + 0
28/04/2018
Jerson Boer
Que bom que esse código ajudou. Para a pergunta sobre mostrar 0 caso o mês não tenha ticket, até onde conheço para que isso funcione você vai precisar ter uma tabela com os nomes dos meses e relacionar a ela a contagem de tickets. Exemplo abaixo:
Veja se consegue recria-la com a função abaixo:
Só precisa se atentar caso o seu gráfico exiba valores entre anos diferentes, porque a sua estrutura de exibição deve ser outra para não somar junto os tickets entre anos.
1 2 3 4 5 6 | SELECT NomeMes.CodigoMes, NomeMes.Mes, CASE WHEN ContaTicheck.Qtde IS NULL THEN 0 ELSE ContaTicheck.Qtde END Qtde FROM NomeMes LEFT JOIN ( SELECT MONTH (data_tickets) AS Mes, COUNT (id_tickets) AS Qtde FROM tickets WHERE (data_tickets >= CONVERT (DATETIME, '2018-04-01 00:00:00' , 102)) GROUP BY MONTH (data_tickets)) AS ContaTicheck ON ContaTicheck.Mes = NomeMes.CodigoMes |
Veja se consegue recria-la com a função abaixo:
1 2 3 4 5 6 7 8 9 10 11 | CREATE TABLE [dbo].[NomeMes]( [CodigoMes] [ int ] IDENTITY(1,1) NOT NULL , [Mes] [ varchar ](50) NOT NULL , [MesAbrev] [ varchar ](50) NULL , CONSTRAINT [PK_NomeMes] PRIMARY KEY CLUSTERED ( [CodigoMes] ASC ) WITH (PAD_INDEX = OFF , STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON ) ON [ PRIMARY ] ) ON [ PRIMARY ] GO |
Só precisa se atentar caso o seu gráfico exiba valores entre anos diferentes, porque a sua estrutura de exibição deve ser outra para não somar junto os tickets entre anos.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)