思路:
第一步:先找出都参加了选中的科目的员工,SQL如下:
-- 逻辑:经过培训名称参数筛选后,员工参与的培训个数 等于 下拉框选中的培训的个数,就说明员工都参加的下拉框里选的培训
select 员工编号 from 表名
where 培训名称 in ('${培训名称}')
group by 员工编号
having count(distinct 培训名称) = ${len(split(培训名称,"','"))}
第二步:第一步已经找出了对应员工,那么只需要再筛选选中的科目就可以了,完整SQL如下:
select * from 表名
where
-- 找出对应员工
员工编号 in (
select 员工编号 from 表名
where 培训名称 in ('${培训名称}')
group by 员工编号
having count(distinct 培训名称) = ${len(split(培训名称,"','"))}
)
-- 筛选选中的科目
and 培训名称 in ('${培训名称}')
其中${}里面写的培训名称是指培训名称下拉框参数名