Suspended
またはInactive
(これらの値ストリングは 'ステータス列'のデータテーブルに表示されます)と識別される従業員を除外する照会を作成しようとしています。従業員のいずれかのステータスがある場合、Fail
データテーブルではなく、On Hold
データテーブルに表示されます。以下のシナリオでは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