Fórum Pesquisa SQL de MESES com GROUP BY e ORDER BY juntos #533789

06/10/2015

0

tenho a seguinte query para me mostrar a seguinte tabela

Mês / Ano | Faturamento
Dezembro/2015 | R$ 2.000,00
Fevereiro/2015 | R$ 5.000,00
Março/2015 | R$ 3.000,00

    with dados.qryFaturamentoMes do
    begin
      close;
      sql.Clear;
      sql.Add('SELECT MONTH(DATA) & "/" & YEAR(DATA) as MesAno, SUM(VALOR_CASA) as TotalVendido FROM  historico ');
      sql.Add('where (DATA between :DATAINICIAL and :DATAFINAL)');
      sql.Add(' and (TIPO = "V") ');
      sql.Add(' group by MONTH(DATA) & "/" & YEAR(DATA) order by MONTH(DATA) & "/" & YEAR(DATA) ');
      Parameters.ParamByName('DATAINICIAL').Value := dataini;
      Parameters.ParamByName('DATAFINAL').Value := datafin;
      Open;
    end;


mas os meses não estao saindo ordenados conforme a ordem JAN, FEV, MAR, ABR, MAI

justamente por causa que a função MONTH traz numeros de 1 a 12 e a falta do "0" faz a ordenação sair errado, queria 01, 02 etc

uso BANCO DE DADOS ACCESS

alguma sugestão???

obrigado
Armando Luiz

Armando Luiz

Responder

Posts

07/10/2015

Cauê Nishijima

O group by e o order by não deveriam estar da segunte forma:
       sql.Add(' group by YEAR(DATA), MONTH(DATA)  order by YEAR(DATA), MONTH(DATA)');
Responder

Gostei + 0

13/10/2015

Armando Luiz

o order by so funciono da forma que digitei...

mas postando a solução que consegui... foi separar o Mes e o Ano, pois da forma que fiz estava unindo o mes com o ano assim: 1/2015, e a "/" barra esta impedindo a ordenação de forma correta, entao separei em 2 campos o Mes e o Ano, depois fiz a ordenação da mesma forma postada acima e funcionou
Responder

Gostei + 0

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

Aceitar