You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选出特定人员所有关联分支均放假的日期?

解决方案:筛选特定人员所有关联分支均放假的日期

要搞定这个需求,核心就是要找出每个节假日当天,@t1里指定的所有分支都在@t2中有对应的放假记录的日期。下面是具体的实现思路和代码:

实现逻辑

  1. 先统计@t1里特定人员关联的分支总数,用来后续判断每个日期是否满足「所有分支都放假」的条件
  2. 从节假日表@t3出发,关联分支放假表@t2,只保留属于@t1的分支的放假记录
  3. 按节假日日期分组,统计每个日期下有放假记录的指定分支数量,当这个数量等于总分支数时,就说明该日期所有指定分支都处于放假状态

完整SQL代码

-- 定义表变量并初始化数据(保留原数据结构)
declare @t1 table ( BranchID int )
declare @t2 table ( BranchID int, Holiday date )
declare @t3 table ( Holiday date )

insert into @t1 values(10),(11)
insert into @t2 values (10,'2018-01-01'),(12,'2018-01-01'),(10,'2018-01-05'),(11,'2018-01-05')
insert into @t3 values('2018-01-01'),('2018-01-02'),('2018-01-03'),('2018-01-04'),('2018-01-05')

-- 统计指定分支的总数量
declare @totalBranches int = (select count(*) from @t1)

-- 筛选符合条件的日期
select t3.Holiday
from @t3 t3
left join @t2 t2 on t3.Holiday = t2.Holiday and t2.BranchID in (select BranchID from @t1)
group by t3.Holiday
having count(distinct t2.BranchID) = @totalBranches

结果说明

执行这段代码后,得到的结果是:

Holiday
----------
2018-01-05

原因很简单:2018-01-01只有分支10有放假记录,分支11没有;而2018-01-05分支10和11都有对应的放假记录,完全符合「所有关联分支均放假」的要求。

内容的提问来源于stack exchange,提问作者Raymond Morphy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:25:53