Проблемы Rails PostgreSQL с заявлением заказа - PullRequest
1 голос
/ 02 ноября 2010

Привет Я изменил свою базу данных с mySql на PostgreSQL и получаю сообщение об ошибке каждый раз, когда использую запрос с: оператор заказа

Например, следующий код прекрасно работает в MySQL

Hour.sum("working_hours",:conditions=>['project_id=? AND reported_date=?',project,h.reported_date],:order=>"reported_date

Но выдает ошибку в PostgreSQL

PGError: ERROR: столбец «hours.reported_date» должен присутствовать в предложении GROUP BY или использоваться в статистической функции ЛИНИЯ 1: ... rted_date = '2010-10-06 00: 00: 00.000000') ORDER BY report_d ..
: ВЫБЕРИТЕ сумму ("часы" .working_hours) КАК sum_working_hours ОТ "часов" ГДЕ (project_id = 1 AND report_date = '2010-10-06 00: 00: 00.000000') ORDER BY сообщить_дата

Если я удаляю оператор заказа, тогда запрос работает нормально
Я буду очень признателен за любую помощь по этому вопросу

1 Ответ

2 голосов
/ 02 ноября 2010

PostreSQL более строг к стандарту SQL, чем MySQL.

SQL заявляет, что если вы ORDER по столбцу, этот столбец должен быть SELECT ed и отображаться в предложении GROUP BY.

Попробуйте это:

Hour.sum("working_hours",:conditions=>['project_id=? AND reported_date=?',project,h.reported_date], :order=>"reported_date", :group_by => "working_hours"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...