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

SQL Server生产操作结果进度追踪:带条件NULL的视图构建

解决方案

要实现你需要的视图,核心逻辑是追踪每个操作尝试时间点上已成功完成的操作集合,再根据当前尝试的操作动态填充各列值:已完成的操作显示1,当前正在重试的操作显示本次结果,未开始的操作显示NULL。

步骤解析

  1. 标记操作成功的时间点:先获取每个操作第一次成功的记录ID,以此判断后续记录是否已完成该操作。
  2. 计算每个记录的进度:对每条操作记录,确定截止到当前记录时,已成功完成的最大操作编号。
  3. 透视生成目标列:针对每个操作列,通过条件判断填充对应值:
    • 若操作已完成,显示1;
    • 若当前记录属于该操作且前置操作已完成,显示本次结果;
    • 其余情况显示NULL。

完整SQL代码

CREATE VIEW OperationProgress AS
WITH OpSuccess AS (
    -- 记录每个操作第一次成功的ID
    SELECT OP, MIN(id) AS success_id
    FROM Operations
    WHERE Outcome = 1
    GROUP BY OP
),
OpProgress AS (
    -- 计算每条记录对应的当前操作,以及截止到该记录时已完成的最大操作编号
    SELECT 
        o.id,
        o.OP AS current_op,
        o.Outcome AS current_outcome,
        MAX(CASE WHEN os.success_id <= o.id THEN os.OP ELSE 0 END) OVER (ORDER BY o.id) AS max_completed_op
    FROM Operations o
    LEFT JOIN OpSuccess os ON o.OP = os.OP
)
-- 透视生成目标格式的列
SELECT
    CASE 
        WHEN 1 <= max_completed_op THEN 1
        WHEN current_op = 1 THEN current_outcome
        ELSE NULL
    END AS [OP 1 Outcome],
    CASE 
        WHEN 2 <= max_completed_op THEN 1
        WHEN current_op = 2 AND 1 <= max_completed_op THEN current_outcome
        ELSE NULL
    END AS [OP 2 Outcome],
    CASE 
        WHEN 3 <= max_completed_op THEN 1
        WHEN current_op = 3 AND 2 <= max_completed_op THEN current_outcome
        ELSE NULL
    END AS [OP 3 Outcome],
    CASE 
        WHEN 4 <= max_completed_op THEN 1
        WHEN current_op = 4 AND 3 <= max_completed_op THEN current_outcome
        ELSE NULL
    END AS [OP 4 Outcome],
    CASE 
        WHEN 5 <= max_completed_op THEN 1
        WHEN current_op = 5 AND 4 <= max_completed_op THEN current_outcome
        ELSE NULL
    END AS [OP 5 Outcome]
FROM OpProgress
ORDER BY id;

结果验证

执行该视图后,会生成符合你需求的输出:

  • 前两行对应OP1的两次失败尝试,后续操作列均为NULL;
  • OP1成功后,所有后续行的OP1列固定显示1;
  • OP2、OP3成功后,对应列在后续行固定显示1;
  • OP4重试期间,OP5列保持NULL,直到OP4成功后,OP5列才显示自身的尝试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:43:10