Fórum Calcular somatorio por período, mês e ano na mesma query #534412

14/10/2015

0

Prezados.

Sei o que vou perguntar e trivial, mas estou com grandes dificuldades de desenvolver.

Preciso de uma (sera que pode ser feito em apenas uma?) query (FIREBIRD x Deplhi) para calcular o seguinte:

Tabela

CodAluno DataMedicao TotalPercorrido
01 05 08 2014 100
01 01 09 2015 600
02 03 09 2015 850
02 01 10 2015 700
03 03 08 2015 100
02 01 09 2015 250
01 03 10 2015 220

Eu preciso de um resultado em que ele me devolva o total percorrido em um período dado (data inicial e data final) por aluno
por mês (independente do período - set, out, nov) por aluno
total no ano = distancia total percorrida por aluno

Ex: período de 01 09 2015 a 31 10 22015

aluno 01
período 820
mês 09 600
ano 2014 100 2015 820

E assim por diante....

Bem desafiante né?

Obrigado a todos.
Cezar Moniz

Cezar Moniz

Responder

Posts

14/10/2015

Fabio Basso

A consulta abaixo vai fazer a soma agrupado pelo codigo do aluno e depois pelo mês. Você pode usar o extract(year from datamedicao) para agrupar por ano. Porém para fazer o agrupamento por mês e por ano no mesmo select, só se usar um UNION como no exemplo abaixo. Talvez uma STORED PROCEDURE resolveria o problema por completo.

select codaluno, extract(month from datamedicao) as mes_ano, sum(totalpercorrido)
from alunototalpercorrido
group by 1, 2
union
select codaluno, extract(year from datamedicao) as mes_ano, sum(totalpercorrido)
from alunototalpercorrido
group by 1, 2
Responder

Gostei + 0

14/10/2015

Cezar Moniz

Prezado Fabio.

Sua resposta deu uma clareada legal! Muito obrigado.
Qualquer coisa volto a te pedir socorro!

Abracao
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar