2017-05-27 4 views
0

詳しくは、ユーザーは属性に属していないことを示す一貫性制約を確認するにはどうすればよいですか?

同じ職名の従業員はすべて同じ部門に属している必要があります。

例:在庫マネージャとして働くすべての従業員は、 部門出荷に属します。 従業員のいずれかが同じ職務の他の部門で働いている場合、 スクリプトは、上記の整合性制約の違反を次の形式の に表示する必要があります。

ジョブタイトル| EMPLOYEE ID |部門名ここ

は私がしようとしているものですな文です:

SELECT 'Multitable constraint failed,employee' AS "Constraint", 
     enum, 'is not included in either DRIVER or ADMIN tables' AS "Condition" 
FROM EMPLOYEE 
WHERE enumNOT IN (SELECT enum FROM DRIVER) 
AND enum NOT IN (SELECT enumFROM ADMIN); 

そしてここでは、私たちが与えられたテーブルである:Table given

SELECT 'All employees that have the same job title must belong to the same department' AS "Constraint", 
employee_id, 'is not in both job title or department' AS "Condition" 
FROM EMPLOYEE 
WHERE employee_id IN (SELECT job_title 
         FROM JOB); 
AND employee_id NOT IN (SELECT... 

私は持っているものさfar

+0

表の構造をqs – inarilo

+0

に追加してください。この表から部門を削除してください。仕事のタイトルと部署の別のテーブルを持ってください – Strawberry

+0

残念なことに私たちに与えられたものは変更できません。私たちは与えられた質問にのみ答えることができます。 –

答えて

0

これは、複数の部門で使用されている役職のリストを表示します。

SELECT 
    job_title, count(1) 
FROM (
    SELECT DISTINCT 
    job_title, department_name 
    FROM employee 
) a 
GROUP BY job_title 
HAVING count(1) > 1 
関連する問題