oracle - 在 Oracle SQL 中运行子查询时出错
问题描述
我正在尝试使用子查询连接三个表。
第一个左外连接的结果将与另一个表一起使用以获得具有所有属性的复合视图。
我在编译时遇到错误,第二个连接子句中的表的未知命令。
当我创建两个独立的视图然后加入时,它工作正常。
(select
l.ENROLLED_CONTENT,
l.LEARNING_ENROLLMENT_LEARNER,
l.EMPLOYEE_ID,
l.JOB_FAMILY_GROUP,
l.EMPLOYEE_TYPE,
l.JOB_FAMILY,
l.LEARNING_ENROLLMENT,
l.COMPLETION_STATUS,
l.COMPLETION_DATE,
l.EXPIRATION_DATE,
l.CF_LRV_LEARNING_CONTENT_NUMBER,
l.LEARNING_CONTENT_DETAIL,
l.LEARNING_CONTENT_TYPE,
l.LESSON_TYPE,
e.id# "WK_WORKER_ID"
from tgt_workday.learning l
left outer join ods_hrmaster.employee e
on l.EMPLOYEE_ID = e.employee#) t1
left outer join ( select
per_ids_id,
per_id,
id_pureid from
ods_pure.person_ids
) t2 on t1.wk_worker_id = t2.value where t2.type = 'Employee ID';
解决方案
试试看
SELECT *
FROM ( (SELECT l.ENROLLED_CONTENT,
l.LEARNING_ENROLLMENT_LEARNER,
l.EMPLOYEE_ID,
l.JOB_FAMILY_GROUP,
l.EMPLOYEE_TYPE,
l.JOB_FAMILY,
l.LEARNING_ENROLLMENT,
l.COMPLETION_STATUS,
l.COMPLETION_DATE,
l.EXPIRATION_DATE,
l.CF_LRV_LEARNING_CONTENT_NUMBER,
l.LEARNING_CONTENT_DETAIL,
l.LEARNING_CONTENT_TYPE,
l.LESSON_TYPE,
e.id# "WK_WORKER_ID"
FROM tgt_workday.learning l
LEFT OUTER JOIN ods_hrmaster.employee e
ON l.EMPLOYEE_ID = e.employee) t1
LEFT OUTER JOIN
(SELECT per_ids_id, per_id, id_pureid FROM ods_pure.person_ids) t2
ON t1.wk_worker_id = t2.VAL AND t2.TYPE = 'Employee ID')
推荐阅读
- node.js - 设置默认日期和时间
- vue.js - 此消息类型不允许使用参数:code_challenge_method,如何在 nuxt 中修复它?
- winapi - Windows Shell:如何确定 PIDL 是绝对的还是相对的,以及如何将相对转换为绝对?
- c++ - 如何使用链表找到参数中的最大值?
- selenium-webdriver - 在 selenium 自动化中打开 url 时出现空指针异常
- vbscript - 如何递归获取子文件夹中的文件详细信息?
- sql - SQL Server:LEFT JOIN EMPLOYEE MANAGER 关系
- sql - 在查询中,如果一行缺少数据,我想从上一行中选择数据
- jenkins - Jenkins 中的 Kubernetes 插件:无法通过代理进行身份验证
- python - 如何使用wsl编写python crontab