我如何不包含?

我在关于作业的问题和编写正确的查询时遇到困难。我已经待了好几天了,很快就要到期了。我试图显示不包含114和113(应用程序设计人员)员工ID的所有项目编号。查看表数据,无需编写代码即可看到项目编号为15和18,但无法获得该输出。此代码仅输出除114和113名员工之外的所有内容。

这是问题:

哪个项目不使用应用程序设计器?

这是我的代码:

> proc sql;
>         select distinct proj_num708, emp_num708
>     from asmnt708.assignment708
>     where emp_num708
>      not in (select distinct emp_num708 from asmnt708.assignment708 where emp_num708 in (114, 113));

这是我的代码输出:

[1]

这是我的表数据:

enter image description here

首选输出: 我的首选输出是项目编号15和18

评论
  • 停在昨天
    停在昨天 回复

    You can use not exists

    select 
        proj_num708, 
        emp_num708
    from asmnt708.assignment708 a
    where not exists (
        select distinct emp_num708 
        from asmnt708.assignment708 b
        where a.proj_num708 = b.proj_num708
        and emp_num708 in (114, 113)
    );
    
  • 比卡丘o
    比卡丘o 回复

    我更喜欢在这里使用聚合方法:

    SELECT proj_num708
    FROM asmnt708.assignment708
    GROUP BY proj_num708
    HAVING SUM(emp_num708 = 15) = 0 AND SUM(emp_num708 = 18) = 0;
    

    这将返回所有雇员15和18都不在任何地方的项目。