【发布时间】:2018-10-11 20:18:26
【问题描述】:
我在关联 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
所以,这不是一个选择,因为查询变得永远存在。
最好的问候!
【问题讨论】:
-
甲骨文 8i?哇......这带来了回忆。
-
对 Oracle 8i 的扩展支持于 2006 年结束。当然,十多年前应该升级的时间已经过去了。
-
@TheImpaler LOL
-
@GordonLinoff 我知道,但不是我。这是恐龙客户,除了和它合作我什么都做不了
-
@JuanDiego 有了这些回忆,现在我想去喝啤酒。叹息。
标签: sql oracle query-performance ora-00904 oracle8i