Filtrar mes e ano de tabela

Delphi

01/01/2005

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.


Aflsilva

Aflsilva

Curtidas 0

Respostas

Andremuller

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

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.


GOSTEI 0
Andremuller

Andremuller

01/01/2005

olhando assim não visualisei nenhum erro na sql. Qual o erro que está dando?


GOSTEI 0
Aflsilva

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.


GOSTEI 0
Andremuller

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)


GOSTEI 0
Aflsilva

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

Andremuller

01/01/2005

Qual o banco que tu está utilizando?
Achei que fosse SQLServer por causa das funções year() e month()


GOSTEI 0
POSTAR