Используя PostgreSQL 8.4, я пытаюсь собрать следующий запрос:
SELECT (field_a + field_b + field_c) AS virtual_field, *
FROM "entities"
WHERE ("entities".thing_id = 9999 AND (virtual_field > 0))
AND (boolean_field = 't')
ORDER BY virtual_field DESC
К сожалению, я получаю следующую ошибку:
PGError: ERROR: column "virtual_field" does not exist
LINE 1: ...ies" ("entities".thing_id = 9999 AND (virtual_fiel...
^
Сообщение об ошибке довольноочевидно, но я буду проклят, если смогу понять правильный синтаксис того, что я пытаюсь сделать.field_a
, field_b
и field_c
- все реальные столбцы в моей таблице entities
.
Для справки, я использую Rails (2.3.11) для составления запроса.Вот (анонимный) код, который я использую:
Thing.entities.boolean_scope.find(:all,
:select => "(field_a + field_b + field_c) AS virtual_field, *",
:conditions => ['virtual_field > ?', value],
:order => 'virtual_field DESC'
)
Мой мозг подвел меня - может кто-нибудь помочь мне разобраться?