Erro de Select na consulta

Prezados, tenho o seguinte select:

select data_hora, EXTRACT(day FROM data_hora) as dia, EXTRACT(month FROM data_hora) as mes, distancia, MAX(distancia) AS final, MIN(distancia) As inicial from posicoes where id_eqp=242030 group by dia.

O problema é que tem dado o erro abaixo:

(mysqlt): SELECT data_hora, contador from posicoes where id_eqp=242030 and ( data_hora between ‘2013-12-01 00:00:00’ and ‘2013-12-12 23:59:59’ ) group by dia LIMIT 0,27

1054: Unknown column ‘dia’ in ‘group statement’

        ADOConnection._Execute(SELECT data_hora, contador from posicoes  where id_eqp=242030 and (  data_hora between '2013-12-01 00:00:00' and '2013-12-12 23:..., false) % line 1085, file: adodb.inc.php
     ADOConnection.Execute(SELECT data_hora, contador from posicoes  where id_eqp=242030 and (  data_hora between '2013-12-01 00:00:00' and '2013-12-12 23:..., false) % line  506, file: adodb-mysql.inc.php
  ADODB_mysql.SelectLimit(SELECT data_hora, contador from posicoes  where id_eqp=242030 and (  data_hora between '2013-12-01 00:00:00' and '2013-12-12 23:..., 27, 0) % line  543, file: RelatorioKm_grid.class.php

RelatorioKm_grid.inicializa() % line 89, file: RelatorioKm_grid.class.php
RelatorioKm_grid.monta_grid(0) % line 1472, file: RelatorioKm.php

ERRO
Erro ao acessar o banco de dados
Unknown column ‘dia’ in ‘group statement’
SelectLimit(SELECT data_hora, contador from posicoes where id_eqp=242030 and ( data_hora between ‘2013-12-01 00:00:00’ and ‘2013-12-12 23:59:59’ ) group by dia, 27, 0)

Alguma idéia do que fazer???

não pode usar o alias no group by.

E como fazer neste caso?

Não testei, mas experimente:

GROUP BY EXTRACT(day FROM data_hora)

Exato.

Show Kleyber, obrigado.

Perfeito!!

rsrsrsrs

Não querendo abusar, mas já fazendo, rssss.

Nesse mesmo select vc observa que é feito uma consulta entre duas data/hora, contudo, a informação do campo data_hora é gravada por um gps, ou seja, -3h. Preciso que na hora de filtrar seja acrescentado +3, sei como fazer no select direto no banco, mas não no scriptcase.

Tentei fazendo manualmente, mas como passar o parâmetro para a condição?

Dorigerson,

Qual o problema de colocar no SELECT que estás usando no SC? Se ele funciona direto no banco, deveria funcionar no SC.

Preciso que no select do filtro por data o between fique assim, por exemplo between ‘2014-05-27 08:00:00’+ INTERVAL 3 hour and ‘2014-05-27 12:00:59’+ INTERVAL 3 hour.

É possível?

Como o campo data_hora é gravado com -3 horas, no momento do select preciso que consulte com + 3 horas para poder ser exibido no horário certo.

Dorigerson,

E não poderias na hora de gravar já gravar com as 3 horas a mais?

Estou vendo isso com a pessoa que está fazendo o protocolo de comunicação.