Может кто-нибудь, пожалуйста, помогите мне с этим SQL Query (работает в браузере SQLite DB, но не в Rails) - PullRequest
0 голосов
/ 01 декабря 2009

Рельсы выплевывали мне это:

SQLite3::SQLException: near "SELECT": syntax error: 
        SELECT questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length,
          COUNT(form_questions.id) AS expr1,
          (5) AS expr2,
          CAST(COUNT(form_questions.id) AS REAL) / CAST((5) AS REAL) AS expr3
        FROM questions, form_questions
        WHERE form_questions.question_id = questions.id
        GROUP BY questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length
        HAVING expr3 >= 0.75
        ORDER BY COUNT(form_questions.id) DESC; 

Запрос выполняется корректно, без проблем в браузере баз данных SQLite, но по какой-то причине Rails недоволен им.

Код:

  def self.find_by_commonality
    Question.find_by_sql(%&
        SELECT questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length,
          COUNT(form_questions.id) AS expr1,
          (5) AS expr2,
          CAST(COUNT(form_questions.id) AS REAL) / CAST((5) AS REAL) AS expr3
        FROM questions, form_questions
        WHERE form_questions.question_id = questions.id
        GROUP BY questions.id, questions.text, questions.question_type_id, questions.meta, questions.max_answer_length
        HAVING expr3 >= 0.75
        ORDER BY COUNT(form_questions.id) DESC; & % [])
  end

WTF на что жалуется?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2009

перед оператором SELECT стоит точка , вы уверены, что она должна быть там?

0 голосов
/ 01 декабря 2009

Это похоже на проблему форматирования строки. Попробуйте не пропуская строку между первой круглой скобкой и началом вашего оператора SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...