Fórum SQL firebird - selecionar total de linhas por mês #59773

20/05/2008

0

Bom dia*

Preciso fazer um sql onde preciso retornar o total de um campo ordenado mês a mês....
minha tabela atendimento* tem um campo quantidade

select sum(at.quantidade)
from atendimento at
where cl.data between :pinicio and :pfim

preciso somar o total de quantidade no período informado, mas preciso retornar por mês (mes 1, mes 2,....)
o banco de dados é o firebird 1.5, e a função ´extract(month from cl.data)´ funciona para fazer comparações, mas se colocar
select sum(at.quantidade) ,extract(month from..
group by extract(month from ..
não compila......

Por favor, se alguém puder ajudar, agradeço desde já!!!
abraços


Lip

Lip

Responder

Posts

20/05/2008

Joaoshi

select EXTRACT(MONTH FROM DATA),sum(quantidade)
from atendimento
where data between :pinicio and :pfim
GROUP BY 1

Espero ter ajudado.


Responder

Gostei + 0

20/05/2008

Lip

então joao
coloquei dessa forma..

select extract(month from data),sum(quantidade)
from cl_atendimentos
where situacao = 2
and data between :p1 and :p2
group by 1

mas segue mensagem de erro

´Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 9.
1.´
eu utilizo o firebird 1.5, num sei se tem mto a ver a versão que estou utilizando..


Responder

Gostei + 0

20/05/2008

Joaoshi

Colega, tente assim:

select extract(month from data),sum(quantidade)
from cl_atendimentos
where situacao = 2
and data between :p1 and :p2
group by extract(month from data)

Testei no Firebird 2.1


Responder

Gostei + 0

20/05/2008

Lip

deu esse erro..

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 8.
extract.

deve ser a versão msm neh?


Responder

Gostei + 0

20/05/2008

Webjoel

Olá!

O problema está no alias do extract, segue abaixo o sql correto:

select EXTRACT(MONTH FROM DATA) AS MES,sum(quantidade)
from atendimento
where data between :pinicio and :pfim
GROUP BY MES



Responder

Gostei + 0

20/05/2008

Martins

Seguinte meu amigo, deixe seu SQL como abaixo.

select extract(month from data),sum(quantidade) 
from cl_atendimentos 
where situacao = 2 
and data between :p1 and :p2 
group by 1


Boa sorte e bons códigos.


Responder

Gostei + 0

20/05/2008

Lip

tentativa 1 - Martins
select extract(month from data),sum(quantidade)
from cl_atendimentos
where situacao = 2
and data between :p1 and :p2
group by 1
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 8.
1.

tentativa 2 - WebJoel
select EXTRACT(MONTH FROM DATA) AS MES,sum(quantidade)
from cl_atendimentos
where data between :pinicio and :pfim
GROUP BY MES
msg. erro:
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
MES.

ouvi falar que a versao do firebird tem a ver.... será q eh isso msm?


Responder

Gostei + 0

20/05/2008

Joaoshi

Colega, verifique a versão do FB (a última versão que utilizei era 1.5.3), se for alguma versão RC atualize.
Se nada funcionar você poderia postar aqui, a forma exata que esta passando a instrução SQL + a layout da tabela.


Responder

Gostei + 0

20/05/2008

Lip

coloquei de todas as formas que me passaram até agora, e sempre da erro, (quando coloca 1 ou extract by) depois do group by...
[img]d:\imagem.JPG[/img]
achu q o print screen não vai junto, rs

ah, coloquei a versão 2.1 pra ver se dava certo tbm não compila... com os mesmos erros que eu postei antes


Responder

Gostei + 0

21/05/2008

Lip

pessoal, vlw pelas dicas, os sqls funcionam, o problema é no banco..
tanto no banco que tento o sql quanto em outro banco mais simples que criei, o sql funciona em outros computadores, menos no que estou trabalhando...
criei um banco novo em um pc de casa e funcionou o sql, mas ao criar um banco novo aqui neste computador o sql não funcionou, msm estando com dialect 3...
não sei o que fazer, estou quase formatando essa máquina aki
obrigado pela ajuda, té+


Responder

Gostei + 0

21/05/2008

Webjoel

Olá!

Eu fiz com Firebird 2.0, mas creio que o problema não esteja na versão, o que talvez esteja acontecendo é alguma dll do banco esteja corrompida, pegue em uma maquina que funciona as dll fbclient.dll ou gds32.dll e substitua neste computador que naum esta funcionando, de uma pesquisar e troque todas!

Boa sorte!


Responder

Gostei + 0

26/05/2008

Lip

exatamente, o problema era o gds32.dll, pq tem aki o interbase e firebird instalados, e acabava utilizando o gds32.dll do interbase

renomeei o fcliente* para gds32.dll e substitui o arquivo existente, agora ja possibilita fazer as sqls

vlw galera, obrigado msm

xD


Responder

Gostei + 0

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

Aceitar