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

请求修正TSM DB2 SQL分组查询VM备份状态语句(报错ANS80001I)

修正TSM DB2 VM备份状态查询SQL语句

问题原因

原SQL执行报错(ANS80001I,返回码3)的核心原因是分组查询不符合DB2语法规则:SELECT子句中包含了未在GROUP BY中声明且未使用聚合函数的列(ACTIVITY_TYPE、处理后的START_TIME/END_TIME、MB),DB2要求分组查询时,所有非聚合列必须出现在GROUP BY列表中。

修正后的SQL语句(匹配你期望的输出字段)

根据你需要的输出字段(sub_entity、activity type、start_time、end_time、Successful),调整后的语句如下:

SELECT
    SUB_ENTITY,
    ACTIVITY_TYPE,
    SUBSTR(CHAR(MIN(start_time)), 1, 19) AS START_TIME,
    SUBSTR(CHAR(MAX(end_time)), 1, 19) AS END_TIME,
    SUCCESSFUL
FROM SUMMARY_EXTENDED
WHERE START_TIME > CURRENT_TIMESTAMP - 18 HOURS
    AND SCHEDULE_NAME LIKE '%abcdf'
    AND SUB_ENTITY IS NOT NULL
    AND SUB_ENTITY <> 'Aggregate'
GROUP BY SUB_ENTITY, ACTIVITY_TYPE, SUCCESSFUL

关键修正说明

  • 移除了原语句中你不需要的SCHEDULE_NAME、MB字段,严格匹配期望输出
  • 对start_time使用MIN()聚合函数取分组内最早的任务开始时间,end_time使用MAX()取分组内最晚的任务结束时间,满足分组查询的语法要求
  • 同步调整GROUP BY子句,包含所有SELECT中的非聚合列(SUB_ENTITY、ACTIVITY_TYPE、SUCCESSFUL)
  • 替换了原语句中转义的符号(&gt;、&lt;&gt;)为DB2支持的标准SQL符号(>、`<>)

可选调整(如果需要统计备份大小)

如果后续需要加入备份大小统计,可以添加聚合函数(比如SUM())计算分组内总大小:

SELECT
    SUB_ENTITY,
    ACTIVITY_TYPE,
    SUBSTR(CHAR(MIN(start_time)), 1, 19) AS START_TIME,
    SUBSTR(CHAR(MAX(end_time)), 1, 19) AS END_TIME,
    SUCCESSFUL,
    CAST(FLOAT(SUM(bytes))/1024/1024 AS DEC(15)) AS TOTAL_MB
FROM SUMMARY_EXTENDED
WHERE START_TIME > CURRENT_TIMESTAMP - 18 HOURS
    AND SCHEDULE_NAME LIKE '%abcdf'
    AND SUB_ENTITY IS NOT NULL
    AND SUB_ENTITY <> 'Aggregate'
GROUP BY SUB_ENTITY, ACTIVITY_TYPE, SUCCESSFUL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:43:17