Agrupar por mês em um intervalo, existe como?
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
Curtidas 0
Melhor post
Johnwanzer
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...
GOSTEI 1
Mais Respostas
Rodolpho123
25/07/2006
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
GOSTEI 0
Johnwanzer
25/07/2006
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...
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...
GOSTEI 0
Rodolpho123
25/07/2006
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]
GOSTEI 1
Analistacavanha
25/07/2006
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)
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)
GOSTEI 0