oracle - 在物化视图创建中考虑同一张表的子查询
问题描述
下午好,
如何编辑我的选择以避免物化视图内的子查询错误消息。
ORA-22818 此处不允许子查询表达式
create materialized view vista1
refresh complete on demand
as
select f1.codigo,f1.Car,f1.codCard,f1.descripcion,f1.caracteristicas,
f1.razonsocial
f1.codigoAbs,
f1.codigoCarAbs,
(select ff.Car
from persona ff
where ff.codigo=f1.codigoabs
and ff.codCard=f1.codigoCarAbs
and rownum=1) as "absorbed reference"
from persona f1
表和列的逻辑如下:
"persona" 表有列标识其他被吸收或受监护的人,这些列是:
-codeABS
是的codigoCarABS
- 我无法编辑表的结构或创建其他表。
描述:
1-“codigo”字段是“角色”表的主键。
2-“codCard”字段是“persona”表的唯一代码。
3-“codeABS”字段,表示被吸收的“persona”的代码,属于同一个“persona”表的代码。
4-“codigoCarABS”字段,表示被吸收的“persona”的CAR代码,属于同一个“persona”表的代码。
解决方案
加盟怎么样?
SELECT f1.codigo,
f1.car,
f1.codcard,
f1.descripcion,
f1.caracteristicas,
f1.razonsocial,
f1.codigoabs,
f1.codigocarabs,
f2.car AS absorbed_reference
FROM persona f1
JOIN persona f2 ON f1.codigo = f2.codigoabs AND f1.codigocarabs = f2.codcard;
ROWNUM = 1
您使用的暗示可能有 2 行或更多行;我相信“我的”查询会错过where
确保只从中f2
获取一个值的子句。是否有一些时间戳列,序数,......这有帮助?如果不是,并且您并不真正关心要返回哪个值,则可以将 egMIN
函数应用于f2.car
并将其余选定列放入group by
子句中:
SELECT f1.codigo,
f1.car,
f1.codcard,
f1.descripcion,
f1.caracteristicas,
f1.razonsocial,
f1.codigoabs,
f1.codigocarabs,
MIN(f2.car)AS absorbed_reference
FROM persona f1
JOIN persona f2 ON f1.codigo = f2.codigoabs
AND f1.codigocarabs = f2.codcard
GROUP BY f1.codigo,
f1.car,
f1.codcard,
f1.descripcion,
f1.caracteristicas,
f1.razonsocial,
f1.codigoabs,
f1.codigocarabs;
推荐阅读
- java - 排序的二叉树,陷入循环(递归)
- reactjs - 无法使用镭设置嵌套 div
- javascript - $.POST 在方形空间页面上
- python - 通过 pip 安装程序安装 M2Crypto 的问题
- java - Tomcat 8.5 上的 Apache cxf 回车问题
- sqlite - Unbale 在 Ionic 4 中使用 SQLite 创建表
- mysql - 在mysql中更新else INSERT
- elasticsearch - Kibana 字符串搜索逗号
- java - 使用 GSON 将 JSON 对象转换为不同格式的 Java 对象
- android - 在一个智能手机屏幕上显示 wordpress 内容