Fórum Resultados agrupados por mes #38632
09/09/2003
0
Dia Ocurrencias
01-01-2003 2
02-03-2003 4
03-03-2003 3
...
02-08-2003 1
03-08-2003 3
O query é o seguinte:
SELECT PEDIDOS.PD_DATA, count(pedidos.pd_data) as cnt FROM PEDIDOS where pedidos.pd_data>´01-01-2003´ group by pedidos.pd_data order by pedidos.pd_data;
Agora o que eu pretendo é agrupar tudo por mês:
Mês Ocurrencias
1 20
2 28
3 25
...
Em access isto era facil e em Firebird/Interbase alguem sabe como é?
Espiridiao
Curtir tópico
+ 0Posts
09/09/2003
Fabricio
Gostei + 0
10/09/2003
Espiridiao
Obrigado.
Gostei + 0
10/09/2003
Afarias
EXTRACT( _info_ FROM _campo_ ) onde _info_ pode ser ::
DAY
WEEKDAY
MONTH
YEAR
ex::
SELECT EXTRACT( MONTH FROM PD_DATA ) AS MES FROM PEDIDOS;
Agora, seu problema será :: No IB 6.0 ou FB 1.0 *não* é possível agrupar (GROUP BY) por função ... de forma q, se vc usa uma destas duas versões, não será possível agrupar pelo EXTRACT.
Entretanto, isto é de fácil solução ::
1 - crie um campo MES ::
alter table pedidos add mes smallint;
2 - preencha o campo MES ::
update pedidos set mes = extract(month from pd_data);
3 - use este campo mes na sua query...
4 - crie uma trigger before insert e outra before update na tabela pedidos com o codigo ::
new.mes = extract(month from new.pd_data);
T+
Gostei + 0
11/09/2003
Espiridiao
Eu resolvi o problema pegando num exemplo que afarias deu para uma situação parecida com esta:
criar um view.
executar um query tendo como fonte o view anteriormente criado.
Isto funciona ás mil maravilhas, e aprendia a utilizar os views para
substituir tabelas temporarias.
Obrigado
Gostei + 0
12/09/2003
Afarias
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)