Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Jun 08, 2021 11:23 am Assunto: Relatório agrupado por Mês [Resolvido] |
|
|
Bom dia,
Tenho um relatório FastReport que listo quantos atendimentos agrupados por atendentes em certo periodo de tempo.
Utilizo esse SQL no MySQL:
Código: | SELECT u.nomusu AS Atendente,
COUNT(c.usuarioti) as Qtde from chamados c
inner JOIN usuarios.uusuarios u
ON c.usuarioti = u.codusu
where cast(datainc as DATE) >= '2021-05-01' and cast(datainc as DATE) <= '2021-07-31'
group by usuarioti
ORDER BY Qtde Desc |
Estou precisando modificar este relatório para fazer esta contagem por mês e a quantidade total.
Ficaria mais ou menos assim:
Como fazer este SQL e relatório?
Obrigado. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin
Editado pela última vez por natanbh1 em Qua Jun 09, 2021 5:05 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Jun 08, 2021 12:00 pm Assunto: |
|
|
Bom dia,
Não tenho experiência com o MySQL mas acredito que você possa utilizar o comando Case dentro da função Count para obter as quantidades por mês:
Código: | SELECT
u.nomusu AS Atendente,
COUNT(case when MONTH(datainc) = 5 then c.usuarioti end) as Maio,
COUNT(case when MONTH(datainc) = 6 then c.usuarioti end) as Junho,
COUNT(case when MONTH(datainc) = 7 then c.usuarioti end) as Julho,
COUNT(c.usuarioti) as Qtde
from -- ... |
Espero que ajude
_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis/venda-mogi_das_cruzes-residencial-apartamento
Editado pela última vez por imex em Seg Set 20, 2021 9:37 am, num total de 1 vez |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Jun 09, 2021 10:43 am Assunto: |
|
|
Bom dia Imex,
Obrigado pela resposta, funcionou bem.
Será que já é possível identificar os meses de forma dinâmica no SQL dependendo do intervalo que o usuário escolher no filtro de datas?
Por exemplo, usuário escolheu o intervalo de Janeiro/21 até Abril/21 e o SQL já trazer o agrupamento por mes dinamicamente (4 meses, neste caso) como foi feito de forma fixa no SQL.
Se não for possível, já agradeço porque acho que consigo tentar montar SQL pelo Delphi de acordo com o intervalo selecionado.
Obrigado. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Jun 09, 2021 4:21 pm Assunto: |
|
|
Boa tarde,
Não consigo dizer em relação ao MySQL mas de forma geral costuma ser bem mais simples montar essas consultas de forma dinâmica na aplicação do que no banco de dados. |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Jun 09, 2021 5:05 pm Assunto: |
|
|
Verdade, Imex. Consegui montar a consulta SQL na aplicação dinamicamente.
Deu mais trabalho criar o relatório FastReport com campos dinâmicos mas também consegui.
Obrigado. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
joemil Moderador
Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9098 Localização: Sinop-MT
|
Enviada: Qui Jun 10, 2021 10:58 am Assunto: |
|
|
vc pode montar um cross report no fast, usando o sql exemplo:
Código: | SELECT u.nomusu AS Atendente,
YEAR(data) AS ano
MONTH(data) AS mes
COUNT(c.usuarioti) as Qtde from chamados c
INNER JOIN usuarios.uusuarios u ON c.usuarioti = u.codusu
WHERE cast(datainc as DATE) BETWEEN '2021-05-01' AND '2021-07-31'
GROUP BY usuarioti, YEAR(data), MONTH(data)
ORDER BY Qtde Desc |
nosso grupo de Fast no whats
https://chat.whatsapp.com/KRrNhgyuPuy1o5Y2V1bN1T
nosso grupo de BD no whats
https://chat.whatsapp.com/ENhIQV7mKCoEGi7wia5zgG _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
|
|