有必要爲一個循環:
鑑於此設置:
create table Job(job_code varchar(10), job_name varchar(100));
insert into job values ('dev', 'Developer');
insert into job values ('mgr', 'Manager');
insert into job values ('designer', 'WebDesigner');
create table Job_skill(job_code varchar(10), s_code varchar(10));
insert into job_skill values ('dev', 'sql');
insert into job_skill values ('dev', 'java');
insert into job_skill values ('dev', 'oop');
insert into job_skill values ('mgr', 'ppt');
insert into job_skill values ('mgr', 'outlook');
insert into job_skill values ('designer', 'html');
insert into job_skill values ('designer', 'css');
insert into job_skill values ('designer', 'graphics');
create table Person(per_id integer, name varchar(254));
insert into person values (1, 'Arthur');
insert into person values (2, 'Zaphod');
insert into person values (3, 'Tricia');
insert into person values (4, 'Ford');
create table Person_skill(per_id integer, s_code varchar(10));
insert into person_skill values (1, 'sql');
insert into person_skill values (1, 'java');
insert into person_skill values (1, 'oop');
insert into person_skill values (2, 'ppt');
insert into person_skill values (3, 'html');
insert into person_skill values (3, 'css');
insert into person_skill values (3, 'graphics');
insert into person_skill values (4, 'ppt');
insert into person_skill values (4, 'outlook');
亞瑟是作爲一個合格的開發人員,特里西婭作爲的webdesigner和福特作爲一個經理。 Zaphod只能使用Outlook,所以他缺乏PowerPoint技能成爲經理。
下面的查詢顯示,對於每個人:
with skill_count as (
select ps.per_id,
js.job_code,
count(js.s_code) as num_skills
from person_skill ps
join job_skill js on ps.s_code = js.s_code
group by ps.per_id, js.job_code
order by ps.per_id
), required_skills as (
select job_code, count(*) as num_required
from job_skill
group by job_code
)
select p.name,
sc.job_code,
case
when sc.num_skills = rs.num_required then 'qualified'
else 'not qualified'
end as status
from skill_count sc
join required_skills rs on sc.job_code = rs.job_code
join person p on sc.per_id = p.per_id
order by p.name;
根據樣本數據的結果是:
name | job_code | status
-------+----------+--------------
Arthur | dev | qualified
Ford | mgr | qualified
Tricia | designer | qualified
Zaphod | mgr | not qualified
** [編輯] **你的問題,並添加一些樣本數據和基於該數據的預期輸出。 [**格式化文本**](http://stackoverflow.com/help/formatting)請,[無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload圖像-的代碼上那麼當-要價-A-問題/ 285557#285557) –