对于那些角色分别为-21和-24的员工,我必须从表中过滤记录。
EX:在示例emp_id 2中,它的角色定义为-21和-24。这需要过滤掉。
输入数据:
EMP_ID ROLE_ID
1 -21
1 -31
1 -81
2 -21
2 -24
3 -24
3 -31
3 -42
预期产量
EMP_ID ROLE_ID
1 -21
1 -31
1 -81
3 -24
3 -31
3 -42
答案 0 :(得分:1)
以下是一种可能性:
SELECT *
FROM DAT d
WHERE emp_id NOT IN (SELECT emp_id
FROM dat
WHERE role_id IN (-21,-24)
GROUP BY emp_id
HAVING COUNT(*) = 2)
提供您的数据:
WITH dat (emp_id, role_id) AS ( select 1, -21 from dual union all
select 1, -31 from dual union all
select 1, -81 from dual union all
select 2, -21 from dual union all
select 2, -24 from dual union all
select 3, -24 from dual union all
select 3, -31 from dual union all
select 3, -42 from dual)
SELECT *
FROM DAT d
WHERE emp_id NOT IN (SELECT emp_id
FROM dat
WHERE role_id IN (-21,-24)
GROUP BY emp_id
HAVING COUNT(*) = 2)
它有助于:
EMP_ID ROLE_ID
1 -21
1 -31
1 -81
3 -24
3 -31
3 -42
根据需要。
答案 1 :(得分:0)
您可以通过多种方式(分组,不存在等)来实现。我认为最快的方法是分析count():
$(document).ready(function() {
$('#validProduct').on("click", function(e) {
......
$.ajax({
type : "POST",
contentType : "application/json",
url : "./addProduct",
data : JSON.stringify(product),
dataType : 'json',
timeout : 6000,
success : function(data) {
/* **reload listProducts** */
}
});
});
});
答案 2 :(得分:0)