ORA-00904: неверное имя столбца в коррелированном подзапросе - PullRequest
0 голосов
/ 11 октября 2018

У меня проблема с корреляцией подзапроса в Oracle 8i

Этот подзапрос дает мне ORA-00904: Неверное имя столбца, я не понимаю, почему.Разве это не должно работать?

SELECT
    HIST_FA.HIFA_PLAN_CODIGO                                                AS FE_CODIGO_PLANTEL,
    HIST_FA.HIFA_NUMERO                                                     AS FE_NUMERO_CONTROL,
    HIST_FA.HIFA_FECHA                                                      AS FE_FECHA_HORA_EMISION,
    HIST_FA.HIFA_DEST_CLIE_CODIGO                                           AS FE_CODIGO_CLIENTE,
    --  . . . a bunch of other columns . . .
FROM
    VFA_HIST_FA HIST_FA,
    VFA_HIST_ITEMS_FA HIST_ITEMS_FA,
    (
        SELECT
            HIRF_HIIF_HIFA_NUMERO                                           AS FE_NUMERO_CONTROL,
            SUM(DECODE(HIRF_RETE_CODIGO, 0, HIRF_MONTO))                    AS FE_MONTO_ENTREGADO,
            SUM(DECODE(HIRF_RETE_CODIGO, 5, HIRF_MONTO))                    AS FE_IMPUESTO_UNICO,
            SUM(DECODE(HIRF_RETE_CODIGO, 6, HIRF_MONTO))                    AS FE_MARGEN_COMERCIALIZACION
        FROM
            VFA_HIST_ITEMS_RETENC_FA
        WHERE
            HIRF_HIIF_HIFA_NUMERO = HIST_FA.HIFA_NUMERO
        GROUP BY
            HIRF_HIIF_HIFA_NUMERO
    ) PP  
WHERE
    HIST_FA.HIFA_NUMERO = HIST_ITEMS_FA.HIIF_HIFA_NUMERO;

Конечно, я могу сделать это на главном WHERE, но тогда он сканирует все строки во внутреннем.

HIST_FA.HIFA_NUMERO = PP.FE_NUMERO_CONTROL

Так, не вариант, так как запрос становится вечным.

С уважением!

1 Ответ

0 голосов
/ 11 октября 2018

Измените псевдоним для имени столбца HIRF_HIIF_HIFA_NUMERO AS FE_NUMERO_CONTROL на другое имя и повторите попытку.

...