我的任務是根據技能和可用性將我的數據庫中的候選人與適當的職位空缺匹配,只使用sql和pl/sql。PL/SQL比較表
我已經設法編寫了下面的代碼,將可用的候選人與可用的職位空缺相匹配。
DECLARE
CURSOR availableCandidates_cur IS
SELECT * FROM candidate
WHERE candidate.available = 'True';
CURSOR availableJobs_cur IS
SELECT *
FROM position WHERE status = 'Open';
BEGIN
DBMS_OUTPUT.PUT_LINE('Available Candidates with matching vacencies');
FOR availableCandidates_rec IN availableCandidates_cur
LOOP
DBMS_OUTPUT.PUT_LINE('Candidate: ' || availableCandidates_rec.firstName || ' ' || availableCandidates_rec.lastName);
FOR availableJobs_rec IN availableJobs_cur
LOOP
IF (availableCandidates_rec.positionType = availableJobs_rec.positionType) THEN
DBMS_OUTPUT.PUT_LINE(availableJobs_rec.positionName);
END IF;
END LOOP;
END LOOP;
END;
我很想弄清楚現在如何根據匹配技巧來匹配候選人。有問題的表是
candidateSkills
candidateID | skillID
1 | 2
1 | 3
2 | 1
3 | 1
3 | 3
positionSkills
positionID | skillID
1 | 1
1 | 3
2 | 1
3 | 2
3 | 3
因此,例如,我想輸出
Candidate 1 Matches
position 3
Candidate 2 Matches
position 2
Candidate 3 Matches
position 2
position 3
我擔心我可能已經下降了錯誤內在的道路導致了我的困惑。
如果有人能幫助我引導正確的方向,我將不勝感激。
謝謝
感謝您的幫助。 該查詢輸出每個candidate.skill匹配任何position.skilll 但是,我需要檢查是否候選人滿足特定位置的每一個技能,以便成爲一個匹配,如顯示在原始文章的輸出。 – amitl 2012-04-18 22:13:26
好的,我現在糾正了。我相信這會對你有用。 – moleboy 2012-04-19 14:05:21
非常感謝您完美解決了我的問題。我設法將這些代碼加入到我的原始pl/sql函數中以提供我想要的輸出。 – amitl 2012-04-22 21:21:55