我的任务是根据技能和可用性将我的数据库中的候选人与适当的职位空缺匹配,只使用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