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

通过AssociationNumber关联的Shifts与Requests表SQL查询实现问题

解决方案

实现思路如下:

  • 先获取指定查询的ShiftId对应的AssociationNumber值
  • 匹配符合要求的班次:如果AssociationNumber非空,返回所有同关联号的班次;如果AssociationNumber为空,仅返回目标班次本身
  • 左关联Requests表,带出对应关联的请求记录

你可以直接使用以下SQL语句,替换@TargetShiftId的参数值即可查询对应结果:

DECLARE @TargetShiftId INT = 1; -- 替换为你要查询的ShiftId
DECLARE @AssocNumber INT = (SELECT AssociationNumber FROM Shifts WHERE ShiftId = @TargetShiftId);

SELECT 
    s.ShiftId,
    s.AssociationNumber,
    r.requestId
FROM Shifts s
LEFT JOIN Requests r ON s.ShiftId = r.shiftId
WHERE 
    (@AssocNumber IS NOT NULL AND s.AssociationNumber = @AssocNumber)
    OR (@AssocNumber IS NULL AND s.ShiftId = @TargetShiftId)
ORDER BY s.ShiftId;

效果验证

  • 当@TargetShiftId = 1或者@TargetShiftId = 2时,均返回ShiftId为1、2的两条记录,其中ShiftId 1关联requestId为1,ShiftId 2无关联请求
  • 当@TargetShiftId = 5时,仅返回ShiftId为5的记录,关联requestId为3
  • 当@TargetShiftId = 3或者@TargetShiftId = 4时,均返回ShiftId为3、4的两条记录,其中ShiftId 3关联requestId为2,ShiftId 4无关联请求

内容的提问来源于stack exchange,提问作者Kevin Robinson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:15:03