ORA-00904: Invalid column name on a correlated subquery

213 Views Asked by At

I'm having a problem correlating a subquery on Oracle 8i

That subquery gives me an ORA-00904: Invalid column name, I don't understand why. Shouldn't it work?

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;

Of course, I can do this at the main WHERE, but then it scans all rows in the inner one.

HIST_FA.HIFA_NUMERO = PP.FE_NUMERO_CONTROL

So, not an option, since the query becomes everlasting.

Best regards!

1

There are 1 best solutions below

1
Abdullah Ahsan On

Change the Alias Name for the column name HIRF_HIIF_HIFA_NUMERO AS FE_NUMERO_CONTROL to some other name and try again.