查询连续三年年度考核为合格的sql语句
时间: 2023-12-23 14:35:20 浏览: 141
对不起,我之前的回答有误。以下是正确的SQL语句来查询连续三年年度考核为合格的员工:
```sql
SELECT employee_id
FROM performance p1
WHERE EXISTS (
SELECT *
FROM performance p2
WHERE p1.employee_id = p2.employee_id
AND p1.year = p2.year - 1
AND EXISTS (
SELECT *
FROM performance p3
WHERE p1.employee_id = p3.employee_id
AND p1.year = p3.year - 2
AND p1.result = '合格'
AND p2.result = '合格'
AND p3.result = '合格'
)
);
```
上述语句假设有一个名为 `performance` 的表,其中包含 `employee_id`(员工ID)、`year`(考核年份)和 `result`(考核结果)等列。该语句通过嵌套的子查询来判断是否存在连续三年年度考核为合格的员工。首先,外部查询检查是否存在某个员工的年度考核结果为合格,并且在前一年和前两年也有连续两次的合格考核结果。如果存在这样的员工,他们的 `employee_id` 将被返回。
阅读全文