Fórum Agrupar por Mês e Ano com SQL no Paradox??? #232215

13/05/2004

0

Pessoal,

Na tabela tenho um campo DATA_MOV e estou precisando fazer uma consulta no banco Paradox que agrupe por mês e ano a quantidade de movimentação.
Ex. Tenho uma série de movimentos entrada/saida de 2003 e 2004, preciso gerar um gráfico de evolução (barras) por mês e ano (12/2003, 01/2004, 02/2004, 03/2004...) informando a quantidade de registro (count) de cada mês (01/2004 = 40, 02/2004 = 35).

O comando que tentei usar está dando erro no Paradox.

SELECT DATA_MOV, COUNT(MOV) AS TOTAL FROM T_MOVIMENTACAO GROUP BY EXTRACT(MONTH FROM DATA_MOV), EXTRACT(YEAR FROM DATA_MOV).

O que tem de errado nisso?

Obrigado.


Ads

Ads

Responder

Posts

14/05/2004

Adilsond

Como é que voce vai mostrar uma data se voce está agrupando pela mes/ano da mesma ?????

SELECT EXTRACT(MONTH FROM DATA_MOV) AS MES_MOV,
EXTRACT(YEAR FROM DATA_MOV) AS ANO_MOV,
COUNT(MOV) AS TOTAL
FROM T_MOVIMENTACAO
GROUP BY EXTRACT(MONTH FROM DATA_MOV),
EXTRACT(YEAR FROM DATA_MOV)


Responder

Gostei + 0

14/05/2004

Ads

Deu erro ! ´Capability Supported´

Estou usando banco Paradox.


Responder

Gostei + 0

14/05/2004

Adilsond

Isto ocorre porque o BDE não aceita o extract no group by. Para reseolver o problema, faça o seguinte:

1 - Salve a query abaixo no mesmo diretório que se encontra a sua tabela, com a extensão .sql

Ex: MinhaConsulta.sql

SELECT EXTRACT(MONTH FROM DATA_MOV) AS MES_MOV, 
EXTRACT(YEAR FROM DATA_MOV) AS ANO_MOV, MOV
FROM T_MOVIMENTACAO


2 - Utilize sua query (View) para a consulta seguinte:

SELECT MES_MOV, ANO_MOV, COUNT(MOV) AS TOTAL 
FROM MinhaConsulta.sql
GROUP BY MES_MOV, ANO_MOV



Responder

Gostei + 0

14/05/2004

Ads

Obrigado pela ajuda !!
Vou testar e informo se funcionou.

Abraço.


Responder

Gostei + 0

14/05/2004

Adilsond

Para aqueles que não entenderam, espero ser mais claro:

O que fiz foi apenas criar uma view para possibilitar trabalhar com o BDE utilizando comando não aceitos diretos com tabelas Paradox,DBase.

Vamos dizer que necessito trazer a somatória de um valor por mes/ano entre um intervalo de ano.

O primeiro passo é criar uma query, com qualquer editor, que nos traga os dados necessários. Ex:

SELECT EXTRACT(MONTH FROM CAMPODATA) AS MES, // Estou trazendo apenas o mes da data
EXTRACT(YEAR FROM CAMPODATA) AS ANO, // Estou trazendo apenas o ano da data
VALOR // Estou trazendo o valor que será somado posteriormente
FROM MINHATABELA

O segundo passo é salvar esta query. Ela será salva no mesmo diretório onde se encontra a sua tabela. Esta query será apenas um arquivo texto com a extensão ´.sql´.

O terceiro passo é utilizar esta view. Então em seu projeto coloque uma query com o seguinte comando sql.

SELECT MES, ANO, SUM(VALOR)
FROM MINHAVIEW.SQL
WHERE ANO BETWEEN 2000 AND 2004
GROUP BY MES, ANO
ORDER BY ANO, MES

Espero que eu tenha sido mais claro. Qualquer dúvida, avivem-me.


Responder

Gostei + 0

14/05/2004

Adilsond

Pessoal, desculpem-me pelo engano.

Apesar de funcionar salvando o arquivo com a extensão ´.sql´, a extensão correta é ´.qry´.


Responder

Gostei + 0

17/05/2004

Ads

Funcionou perfeitamente !!!

Obrigado pela ajuda.

Abraço


Responder

Gostei + 0

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

Aceitar