GARANTIR DESCONTO

Fórum Resultados agrupados por mes #38632

09/09/2003

0

Tenho um query que me conta o numero de ocorrencias por dia:

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

Espiridiao

Responder

Posts

09/09/2003

Fabricio

Existe uma função para extrair o mês (acho que é extractmonth) é só mandar agrupar por mês.


Responder

Gostei + 0

10/09/2003

Espiridiao

Essa função não existe o que existe é a EXTRACT, mas não encontro documentação com exemplos, os docs que vêm no Firebird referenciam EXTRACT duas vezes mas não dão exemplo.
Obrigado.


Responder

Gostei + 0

10/09/2003

Afarias

O EXTRACT é usado da forma::

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+


Responder

Gostei + 0

11/09/2003

Espiridiao

Em primeiro lugar obrigado pelo vosso apoio. :D
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


Responder

Gostei + 0

12/09/2003

Afarias

A solução da VIEW é realmente ótima e muito mais PROFISSIONAL.


T+


Responder

Gostei + 0

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

Aceitar