Agrupar por mês em um intervalo, existe como?

25/07/2006

0

Pessoal estou com uma duvida, estou querendo realizar uma consulta no interbase e naum estou conseguindo faze-la, tenho um exemplo abaixo como faço no Oracle, mas ta difícil fazer no interbase, eu quero por um intervalo de data tipo 01/01/2004 a 31/12/2004 e ele me retorne agrupado por cada mês quantos códigos tenho em cada mês, tipo. seria agrupa-los por mês, existe esta possibilidade no interbase? Desde já agradeço a atenção de todos...

select TO_NUMBER(TO_CHAR(data_emissao, ´MM´)) AS DATA, SUM(QTDE) AS TOTAL 
from VIEW_NOME 
where data_emissao BETWEEN ´01-jan-2004´ AND ´30-dez-2004´ 
GROUP BY TO_CHAR(data_emissao, ´MM´)



Johnwanzer

Johnwanzer

Responder

Post mais votado

26/07/2006

Obrigado pelas dicas, com o extract continuava dando erro, pois não tinha como agrupar, então eu fiz que nem no oracle, criei uma visão com o extract e chamei a visão com select agrupando... Muito obrigado pela ajuda, Rodolpho...


Johnwanzer

Johnwanzer
Responder

Mais Posts

26/07/2006

Rodolpho123

Tente assim:
select extract (month from data_emissao) AS DATA, SUM(QTDE) AS TOTAL from VIEW_NOME where data_emissao BETWEEN ´01-jan-2004´ AND ´30-dez-2004´ GROUP BY 1



Responder

26/07/2006

Johnwanzer

Muito obrigado pela ajuda, jah me auxiliou um pocado, mas estou com apenas parte da solução, soh que como tem varias datas, ele naum esta agrupando por mês, a consulta esta como a abaixo, mas ele retorna o numero correspondente ao mes e a quantidade mas naum esta agrupando com as diferentes datas

select extract(month from tabela.data), count(codigo)
from tabela
where tabela.data BETWEEN ´01/01/2005´ AND ´12/31/2005´
GROUP BY tabela.data

tipo do retorno

f_1 count
1 50
1 12
1 78
1 9
1 20
2 98
2 87
.. ..
12 24
12 78
12 78
12 10

Mais ou menos isto que esta me retornando, mas naum agrupa os resultado e soma, mas obrigado rodolpho, ce voce puder me auxiliar novamente, obrigado...


Responder

26/07/2006

Rodolpho123

O seu [b:65b51a7781]group by[/b:65b51a7781] não pode ser por [b:65b51a7781]tabela.data[/b:65b51a7781]. Tem, que ser pelo [b:65b51a7781]extract[/b:65b51a7781]


Responder

24/09/2014

Analistacavanha

Fiz conforme abaixo e deu certo.
Era exatamente o que eu estava precisando.
Fiz o group by pelo extract inteiro.

select extract(month from tabela.data), count(codigo)
from tabela
where tabela.data BETWEEN ´01/01/2005´ AND ´12/31/2005´
GROUP BY extract(month from tabela.data)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar