这个Oracle查询有什么问题?(ORA-00904:&x201C;md.valores&&x201D;";COD_TIPO_EXPE";:无效标识符)
我正在尝试编写一个SQL查询。如果它在Oracle SQL Developer中工作,我将在TableAdapters查询中使用它。这就是问题所在这个Oracle查询有什么问题?(ORA-00904:&x201C;md.valores&&x201D;";COD_TIPO_EXPE";:无效标识符),oracle,Oracle,我正在尝试编写一个SQL查询。如果它在Oracle SQL Developer中工作,我将在TableAdapters查询中使用它。这就是问题所在 SELECT * FROM (SELECT cexp.expediente.num_expe "Num. Expediente", cexp.expediente.nif nif, cexp.expediente.interesado nombre, MAX
SELECT *
FROM (SELECT cexp.expediente.num_expe "Num. Expediente",
cexp.expediente.nif nif, cexp.expediente.interesado nombre,
MAX (DECODE (a.descripcion,
'NUMERO_FACTURA', cexp.md_valores.valor,
NULL
)
) "Numero Factura",
MAX (DECODE (a.descripcion,
'IMPORTE_FACTURA', cexp.md_valores.valor,
NULL
)
) "Importe bruto",
MAX (DECODE (a.descripcion,
'IMPORTE_NETO', cexp.md_valores.valor,
NULL
)
) "Importe neto",
MAX (DECODE (a.descripcion,
'FECHA_PRESENTACION_FACTURA', cexp.md_valores.valor,
NULL
)
) "Fecha recepcion"
FROM cexp.md_propiedades a
RIGHT JOIN
(cexp.expediente RIGHT JOIN cexp.md_valores
ON cexp.expediente.num_expe = cexp.md_valores.num_expe)
ON (a.propiedad = md_valores.propiedad)
AND (a.cod_tipo_expe = md_valores.cod_tipo_expe)
WHERE cexp.expediente.cod_tipo_acto = '12EO'
GROUP BY cexp.expediente.num_expe,
cexp.expediente.interesado,
cexp.expediente.nif,
cexp.expediente.cod_tipo_expe)
文本:ORA-00904:“md_valores”。“COD_TIPO_EXPE”:识别无válido您的
FROM
子句似乎无组织。我真的不确定您是如何尝试右键连接这些表的。我能做的最好的安排是:
FROM cexp.md_propiedades a
RIGHT JOIN cexp.md_valores
ON ( a.propiedad = md_valores.propiedad
AND a.cod_tipo_expe = md_valores.cod_tipo_expe)
RIGHT JOIN cexp.expediente
ON cexp.expediente.num_expe = cexp.md_valores.num_expe
看看这样行不行
您显示的错误表明,COD\u TIPO\u EXPE
列既不存在于您称之为md\u valores.COD\u TIPO\u EXPE
的表中,也不存在于您使用别名a.COD\u TIPO\u EXPE
的表中。请检查此选项之一是否为真并修复它
编辑
由于您在所有表上都使用了架构名称(cexp
),这可能是因为您在md_valores
表上遗漏了它
FROM cexp.md_propiedades a
RIGHT JOIN cexp.md_valores
ON ( a.propiedad = cexp.md_valores.propiedad --here
AND a.cod_tipo_expe = cexp.md_valores.cod_tipo_expe) --here
RIGHT JOIN cexp.expediente
ON cexp.expediente.num_expe = cexp.md_valores.num_expe
我不明白你是怎么加入这两张桌子的。如果它没有给你错误,看看你是否得到了预期的输出。如果没有,那么您可能必须在一个位置将右连接
与左连接
交换
我还假设查询中使用的所有列都存在于给定的表中
SELECT *
FROM(SELECT c.num_expe "Num. Expediente",
c.nif nif, c.interesado nombre,
MAX (DECODE (a.descripcion,
'NUMERO_FACTURA', b.valor,
NULL
)
) "Numero Factura",
MAX (DECODE (a.descripcion,
'IMPORTE_FACTURA', b.valor,
NULL
)
) "Importe bruto",
MAX (DECODE (a.descripcion,
'IMPORTE_NETO', b.valor,
NULL
)
) "Importe neto",
MAX (DECODE (a.descripcion,
'FECHA_PRESENTACION_FACTURA', b.valor,
NULL
)
) "Fecha recepcion"
FROM cexp.md_propiedades a
RIGHT JOIN
cexp.md_valores b
ON (a.propiedad = b.propiedad AND a.cod_tipo_expe = b.cod_tipo_expe)
RIGHT JOIN
cexp.expediente c
ON c.num_expe = b.num_expe
WHERE c.cod_tipo_acto = '12EO'
GROUP BY c.num_expe,
c.interesado,
c.nif,
c.cod_tipo_expe
)
cexp
是您的模式名称吗?可能应该是cexp.md_valores.cod_tipo_expe和cexp.md_valores.propiedad请以文本而不是图像的形式发布错误。错误消息表明您在某处引用了“md_valores”
作为标识符,但它不在您显示的代码中。是否有更多-可能是订单条款?错误对话框中的查询也与您发布的内容不匹配,因此它可能位于您的真实选择列表中,或者真实查询中的任何位置…@AlexPoole这是同一个查询,只有查询在VS中执行,并且此更改*表示“Num.phastibute”、nif、nombre、“numo Factura”…相同的错误。我认为cexp.md_valores.propiedad但是这个失败了too@FranciscoJavierYanesDelgado试试我刚才做的编辑。如果不起作用,您必须向我们展示md_valores
结构以及md_propiedades
结构,以便我们进行检查。