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

如何编写SQL查询所有已受理且出具期限为2天的维修物品

问题排查与解决方案

原SQL存在的问题

  • 表关联条件错误:Orders和Items的关联外键是Orders.ItemsID,不是Orders.ID,原关联条件Orders.ID = Items.ID会导致关联结果完全不匹配,得到错误的物品数据
  • 筛选条件硬编码:直接固定Date_of_deadline = '2021-11-18'只能查询特定日期到期的记录,无法匹配所有「受理到出具结果期限为2天」的记录
  • 缺少已受理状态筛选:没有过滤已受理的状态条件,会将已提交、待备件等其他状态的订单也查询出来
  • 冗余字段:SELECT子句中重复查询了两次Status_items,属于无效冗余

正确实现方案

需求拆解:匹配已受理状态的维修物品 + 受理日期到截止日期间隔为2天,适配当前SQL Server数据库的实现如下:

SELECT 
    i.ItemsName, 
    i.Status_items, 
    o.Date_of_acceptance, 
    o.Date_of_deadline,
    o.Type_of_repair
FROM 
    Orders o
INNER JOIN 
    Items i ON o.ItemsID = i.ID
WHERE 
    -- 筛选已受理状态,可根据实际业务规则调整判断条件
    o.Status_order = 'Accept' 
    AND i.Status_items LIKE 'Accept%'
    -- 计算受理到截止期限间隔为2天
    AND DATEDIFF(day, o.Date_of_acceptance, o.Date_of_deadline) = 2

执行结果说明

基于提供的测试数据执行上述SQL,会返回2条符合要求的记录:

  • 打印机,物品状态为「Accept for the repair 」,受理日期2021-11-16,截止日期2021-11-18,维修类型为笔记本碎屏
  • 电脑,物品状态为「Unclaimed」,受理日期2021-7-12,截止日期2021-7-14,维修类型为更换笔记本电池

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:02