我们正在尝试构建一个查询,以筛选出标识为Suspended
或Inactive
(这些值字符串显示在我们的数据表中'status列'中)的雇员。如果员工具有以上任一状态,他们将显示在On Hold
数据表中,而不是Fail
数据表中。MySQL查询复合语句不返回预期结果
在下面的情况下,“李四”做失败了Approval
,而是因为她是Inactive
她应该被处理为On Hold
并没有出现在Fail
数据表。
我们预计这些结果在Fail
表当我们运行下面的查询:
Employee ID FirstName LastName Status Eligibility Approved
123456 Jim James OK OK Not Approved
777889 Ray Raymond OK Ineligible OK
但是相反,我们看到:
Employee ID FirstName LastName Status Eligibility Approved
123456 Jim James OK OK Not Approved
123412 Jane Doe Inactive OK Not Approved
777889 Ray Raymond OK Ineligible OK
下面是我们运行查询,但Inactive
员工继续尽管出现了第一个复合语句(我们在此数据运行中没有任何Suspended
雇员,如果这有所作为),也会出现。
SELECT
emp_id,
first_name,
last_name,
status,
eligibility,
approved
FROM
`pass_fail`
WHERE(
status <> 'Inactive'
OR
status <> 'Suspended'
)
AND (
eligibility ='Ineligible'
OR
approved = 'Not Approved')
谢谢戈登!我们测试了您的解决方案并且效果很好。汤姆 – tomish