Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > [Firebird] В запросе не определяется поле


Автор: spyswamp 18.10.2012, 12:22
Привет. У меня есть иерархическая таблица XXXX. Пытаюсь для нода определить парентов и чайлдов, чтобы произвести вставку в другую таблицу. Однако Firebird 2.1 ругается на:

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
C.ID.
At line 8, column 46.

Сам текст запроса: поля есть. Если поменять куски CHILDREN и PARENT_LIST местами, то будет ругаться на то, что нет PT.ID. В чем может быть проблема?

Код

MERGE INTO MO_DATAGROUP_LINK DGL USING
(
WITH RECURSIVE

CHILDREN AS (
SELECT 923 ID FROM RDB$DATABASE
UNION ALL
SELECT S.ID FROM SPRT S JOIN CHILDREN C ON C.ID = S.PARENTID
),

PARENT_LIST AS (
  SELECT PARENTID ID FROM SPRT WHERE ID = 923
  UNION ALL
  SELECT PARENTID ID FROM SPRT T JOIN PARENT_LIST PT ON T.ID = PT.ID)

SELECT ID FROM PARENT_LIST WHERE ID IS NOT NULL
UNION ALL
SELECT ID FROM CHILDREN

) PX ON DGL.DATAID = PX.ID AND DGL.DATAGROUPID = 896 AND DGL.TABLENAME = 'XXXX'
WHEN NOT MATCHED THEN INSERT (DATAGROUPID, TABLENAME, DATAID) VALUES (:D_VALUE, 'XXXX', PX.ID);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)