Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL排除特定类型多行选择精确的两行_Sql_Oracle_Conditional Aggregation - Fatal编程技术网

Oracle SQL排除特定类型多行选择精确的两行

Oracle SQL排除特定类型多行选择精确的两行,sql,oracle,conditional-aggregation,Sql,Oracle,Conditional Aggregation,我正在尝试编写oracle sql以从表ABC中选择所有EmplId 不包括具有三个特定角色的员工ID。举例如下: 表1=ABC 雇员角色 ______________________ 111 苹果 111 芒果 111 红苹果 222 苹果 222 橙色 222 红芒果 222 香蕉 333 苹果 333 橙色 444 苹果 444 芒果 444 红芒果 555 葡萄 666 橙色 666 葡萄 666 蓝莓 表2=详细信息 雇员姓名电子邮件 _________________________

我正在尝试编写oracle sql以从表ABC中选择所有EmplId 不包括具有三个特定角色的员工ID。举例如下: 表1=ABC 雇员角色 ______________________ 111 苹果 111 芒果 111 红苹果 222 苹果 222 橙色 222 红芒果 222 香蕉 333 苹果 333 橙色 444 苹果 444 芒果 444 红芒果 555 葡萄 666 橙色 666 葡萄 666 蓝莓 表2=详细信息 雇员姓名电子邮件 __________________________________ 111约翰 info@email.com 222埃里卡 info@email.com 等等 基本上,在上面的例子中,苹果、芒果和红色%是三个角色 这需要排除在外。sql应该为返回EMPLID和名称 22233555和666。它应该排除111和444 我尝试创建子选择,但仍然不起作用。`在此处输入代码'。任何建议或帮助都是免费的 非常感谢


使用条件聚合:

SELECT t1.EMPLID,
       t1.NAME,
       t1.EMAIL
FROM DETAILS t1
INNER JOIN
(
    SELECT EMPLID
    FROM ABC
    GROUP BY EMPLID
    HAVING SUM(CASE WHEN ROLE = 'Apple' OR ROLE = 'Mango' OR ROLE LIKE 'Red%'
                    THEN 1 ELSE 0 END) < 3
) t2
    ON t1.EMPLID = t2.EMPLID

使用条件聚合:

SELECT t1.EMPLID,
       t1.NAME,
       t1.EMAIL
FROM DETAILS t1
INNER JOIN
(
    SELECT EMPLID
    FROM ABC
    GROUP BY EMPLID
    HAVING SUM(CASE WHEN ROLE = 'Apple' OR ROLE = 'Mango' OR ROLE LIKE 'Red%'
                    THEN 1 ELSE 0 END) < 3
) t2
    ON t1.EMPLID = t2.EMPLID

谢谢你的回复。现在将测试所有场景:-基本上,以下行也必须包括-777,苹果,红苹果,芒果,鳄梨,酸橙和苹果,芒果,红色,只有三行,谢谢你的回答。现在将测试所有场景:-基本上,以下行也必须包括-777,苹果,红苹果,芒果,鳄梨,酸橙,苹果,芒果,红色,只有三行