Filtrar mes e ano de tabela
Amigos, estou tentando pegar de uma tabela (TBPEDIDO) as informacoes sobre as vendas por mes e ano. Por exemplo, vendas de 01/2004 = R$ 1.000,00; vendas de 02/2004 = R$ 1.500,00; etc. Eu so estou conseguindo separar por mes, como detalhado abaixo, mas nao estou conseguindo por mes e ano.
var
Mes: string;
begin
// limpa a tabela
fdm.query1.Close;
fdm.query1.CommandText := ´delete from tbmovmensal´;
fdm.query1.ExecSQL;
// o problema esta aqui, so consigo selecionar por mes e queria por mes e ano.
[color=red:a5a3864941] commandtext :=
´select month(data) as Mes, sum(total)as valor from tbpedido
group by mes order by mes´;
Open;
end;[/color:a5a3864941]
Gostaria muito que alguem me ajudasse.
var
Mes: string;
begin
// limpa a tabela
fdm.query1.Close;
fdm.query1.CommandText := ´delete from tbmovmensal´;
fdm.query1.ExecSQL;
// o problema esta aqui, so consigo selecionar por mes e queria por mes e ano.
[color=red:a5a3864941] commandtext :=
´select month(data) as Mes, sum(total)as valor from tbpedido
group by mes order by mes´;
Open;
end;[/color:a5a3864941]
Gostaria muito que alguem me ajudasse.
Aflsilva
Curtidas 0
Respostas
Andremuller
01/01/2005
select year(data) as Ano, month(data) as Mes, sum(total) as valor from tbpedido group by Ano, Mes order by Ano, Mes
GOSTEI 0
Aflsilva
01/01/2005
Andremuller, consegui fazer do jeito que voce falou. Agora estou tentando filtrar por dia, mes e ano. Estou tentando da seguinte maneira:
[color=red:46dc4b8f4f]´select year(data)as Ano, month(data) as Mes, day(data) as Dia, sum(total)as valor from tbpedido
group by ano, mes, dia order by ano, mes, dia´;[/color:46dc4b8f4f]
So que dessa maneira, nao estou conseguindo. Poderia me ajudar novamente? Ficaria muito agradecido.
[color=red:46dc4b8f4f]´select year(data)as Ano, month(data) as Mes, day(data) as Dia, sum(total)as valor from tbpedido
group by ano, mes, dia order by ano, mes, dia´;[/color:46dc4b8f4f]
So que dessa maneira, nao estou conseguindo. Poderia me ajudar novamente? Ficaria muito agradecido.
GOSTEI 0
Andremuller
01/01/2005
olhando assim não visualisei nenhum erro na sql. Qual o erro que está dando?
GOSTEI 0
Aflsilva
01/01/2005
O erro e o seguinte:
Project empresarial.exe raised exception cass EDatabaseError with message ´You have an error in your SQL sintax ´(data) as Dia, sum(total) as valor from tbpedido group by ano, mes, dia order by´ at line 1´. Process stopped. Use step or Rum to continue.
Espero que voce saiba que erro e esse.
Agradeco desde ja.
Project empresarial.exe raised exception cass EDatabaseError with message ´You have an error in your SQL sintax ´(data) as Dia, sum(total) as valor from tbpedido group by ano, mes, dia order by´ at line 1´. Process stopped. Use step or Rum to continue.
Espero que voce saiba que erro e esse.
Agradeco desde ja.
GOSTEI 0
Andremuller
01/01/2005
tenta utilizar a própria função para o agrupamento
select
year(data) as Ano,
month(data) as Mes,
day(data) as Dia,
sum(total) as valor
from tbpedido
group by year(data), month(data), day(data)
order by year(data), month(data), day(data)
select
year(data) as Ano,
month(data) as Mes,
day(data) as Dia,
sum(total) as valor
from tbpedido
group by year(data), month(data), day(data)
order by year(data), month(data), day(data)
GOSTEI 0
Aflsilva
01/01/2005
Amigo, o problema esta quando vai fazer a consulta por dia. Fiz o teste colocando apenas o [color=red:fb84cfc8fa]day(data) as dia[/color:fb84cfc8fa] e apresenta esse erro. Quando eu coloco apenas o ano ou o mes ou os dois juntos, funciona sem problemas. O problema esta no dia. Existe outra maneira de fazer a pesquisa por dia?
GOSTEI 0
Andremuller
01/01/2005
Qual o banco que tu está utilizando?
Achei que fosse SQLServer por causa das funções year() e month()
Achei que fosse SQLServer por causa das funções year() e month()
GOSTEI 0