【发布时间】:2017-04-12 10:31:26
【问题描述】:
我有以下表格:
1- EMP_INFO_STATUS (main table)
2- NEW_EMP_PERSONAL
3- NEW_EMP_NOTE
4- NEW_EMP_CRS
5- NEW_EMP_CER
6- EMPLOYEES
我想要那个 sql 语句
如果满足以下条件,则返回表 EMP_INFO_STATUS 中的所有记录:
- EMP_INFO_STATUS 表中的状态值 = 2 ==AND==
- 员工在表 NEW_EMP_CRS 中有记录 或
- 员工在表 NEW_EMP_CER 中有记录 或
- 员工在表 NEW_EMP_NOTE 中有记录 或
- 员工在表 NEW_EMP_PERSONAL 中有记录 (AND) 名为 SECONDMENT_IMAGE 的 clomn 不是 Null
这个sql不起作用
SELECT A.EMP_NO,A.STATUS,
B.EMPLOYEE_NO,B.EMP_1ST_NAME,B.EMP_2ND_NAME,
B.EMP_3RD_NAME,B.EMP_4TH_NAME
FROM p9.EMP_INFO_STATUS A,
p9.EMPLOYEES B,
p9.NEW_EMP_PERSONAL C,
p9.NEW_EMP_NOTE D,
p9.NEW_EMP_CRS E,
p9.NEW_EMP_CER F
WHERE
A.EMP_NO = B.EMPLOYEE_NO
AND A.EMP_NO = C.EMP_NO(+)
AND A.EMP_NO = C.EMP_NO(+)
AND A.EMP_NO = E.EMP_NO(+)
AND A.EMP_NO = F.EMP_NO(+)
AND A.STATUS = 2
AND (
C.SECONDMENT_IMAGE is not NULL
OR C.NOTES is not NULL
OR D.NOTE is not NULL
OR E.EMP_NO IS NOT NULL
OR F.EMP_NO IS NOT NULL
)
GROUP BY A.EMP_NO, A.STATUS, B.EMPLOYEE_NO,
B.EMP_1ST_NAME,B.EMP_2ND_NAME,
B.EMP_3RD_NAME,B.EMP_4TH_NAME
【问题讨论】:
-
不用喊了
-
不起作用?? 不是很有帮助的描述。它在什么方面不起作用。
-
它返回一个员工,该员工在表 C 中有数据,但 secondment_image 列和 notes 列为空
-
你可能想看看使用 JOIN 语法