2013-09-13 2 views
0

Я написал простой запрос, использующий спецификаторе, но я получаю эту ошибку:Postgres С запросом претензий нет ОТ-п

Error : ERROR: missing FROM-clause entry for table "cte"

Вот запрос, где я четко полагая а FROM. Я знаю, что это должно быть просто, но я просто не вижу, что я сделал неправильно. Благодарю.

WITH cte AS (
    SELECT cident, "month" 
    FROM orders_extended io 
    WHERE io.ident = 1 -- 1 will be replaced with a function parameter 
) 
SELECT * 
FROM orders_extended o 
WHERE o.cident = cte.cident AND o."month" = cte."month" 
ORDER BY o."month" DESC, o.cname 
+1

Псевдоним 'cte' явно * не * в предложении FROM ... –

ответ

1

Сообщение не обмануло.

+0

Спасибо. Я был под неправильным предположением, что использование WITH, похожего на это, действительно ставит cte в запрос. Не понял, что мне нужно было явно присоединиться к нему, хотя, конечно, это имеет смысл, как только я это вижу. – Gargoyle

+0

Вам необязательно присоединяться к CTE, вы также можете ссылаться на него в предложении WHERE (аналогично тому, что вы делали), но через подзапросы. Например. 'WHERE o.cident = (выберите cident из cte limit 1)'. – bma

Смежные вопросы