阿摩線上測驗 登入

申論題資訊

試卷:109年 - 109 調查、國家安全情報特種考試_三等_資訊科學組、資訊組:資料庫應用#90034
科目:公職◆資料庫應用
年份:109年
排序:0

題組內容

一、已知某單位建置專案管理系統的關聯式資料庫關聯表及外鍵的參考定 義如下: 
Employee(eID, eName, dID) FKs dID ref. Department(dID) 
Qualified(eID, sID, qDate) FKs eID ref. Employee(eID), sID ref. Skill(sID) 
Skill(sID, sName) 
Department(dID, dName) 
Project (pID, pOwner) FKs pOwner ref. Employee(eID) 
Participation(pID, eID) FKs pID ref. Project(pID), eID ref. Employee(eID)

申論題內容

⑴請使用單一 SQL 查詢指令找出具備技能代號(sID)為’001’,但不具 備有技能代號’002’技能的所有員工工號(eID)與員工姓名(eName)。 (15分)

詳解 (共 2 筆)

詳解 提供者:hchungw
SELECT e.eID, e.eName
FROM Employee e
WHERE e.eID IN (
    SELECT q1.eID
    FROM Qualified q1
    WHERE q1.sID = '001'
)
AND e.eID NOT IN (
    SELECT q2.eID
    FROM Qualified q2
    WHERE q2.sID = '002'
);
這個查詢指令的解釋如下:
首先,內部子查詢 SELECT q1.eID FROM Qualified q1 WHERE q1.sID = '001' 找出具備技能代號為 '001' 的所有員工工號。
然後,另一個內部子查詢 SELECT q2.eID FROM Qualified q2 WHERE q2.sID = '002' 找出具備技能代號為 '002' 的所有員工工號。
最後,在主查詢中,通過 WHERE e.eID IN (...) AND e.eID NOT IN (...) 條件來篩選出具備技能代號為 '001' 並且不具備技能代號 '002' 的員工工號和姓名。
詳解 提供者:R考生
SELECT eID, eName
FROM Employee
WHERE eID IN ( SELECT eID FROM Qualified WHERE sID = '001' )
AND eID NOT IN ( SELECT eID FROM Qualified WHERE sID = '002' );