Fórum SQL firebird - selecionar total de linhas por mês #59773
20/05/2008
0
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
Curtir tópico
+ 0Posts
20/05/2008
Joaoshi
from atendimento
where data between :pinicio and :pfim
GROUP BY 1
Espero ter ajudado.
Gostei + 0
20/05/2008
Lip
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..
Gostei + 0
20/05/2008
Joaoshi
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
Gostei + 0
20/05/2008
Lip
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 8.
extract.
deve ser a versão msm neh?
Gostei + 0
20/05/2008
Webjoel
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
Gostei + 0
20/05/2008
Martins
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.
Gostei + 0
20/05/2008
Lip
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?
Gostei + 0
20/05/2008
Joaoshi
Se nada funcionar você poderia postar aqui, a forma exata que esta passando a instrução SQL + a layout da tabela.
Gostei + 0
20/05/2008
Lip
[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
Gostei + 0
21/05/2008
Lip
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é+
Gostei + 0
21/05/2008
Webjoel
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!
Gostei + 0
26/05/2008
Lip
renomeei o fcliente* para gds32.dll e substitui o arquivo existente, agora ja possibilita fazer as sqls
vlw galera, obrigado msm
xD
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)