报表中用SYSDATE查询过去2天数据遇括号错误求助
修正SQL语法错误并调整日期筛选逻辑
原SQL存在的问题:
- WHERE子句中
H.comp_code='F1'前缺少AND运算符,导致条件语句语法断裂 - GROUP BY子句里的
CHG_DATE'多了一个单引号,引发语法错误 - 原日期筛选逻辑不符合“获取过去2天数据”的需求,原条件是基于
start_date和end_date的范围判断,未关联业务日期字段
修正后的SQL:
SELECT CUST_CODE, CHG_DATE, ACCSS_NUM, ACCSS_REF_NUM, ACCSS_REF_DES, CHG_CODE, CHG_QTY, CHG_RATE_CRNT, CHG_TOT, INVT_LEV1, QTY, ACCSS_DATE FROM E_ACCSS_H H WHERE H.comp_code = 'F1' AND H.accss_stat = 'A' AND H.CUST_CODE = 'TYS001' -- 筛选过去2天的业务数据,这里用ACCSS_DATE作为业务日期字段,可根据实际需求替换为CHG_DATE AND H.ACCSS_DATE >= SYSDATE - 2 AND H.ACCSS_DATE < SYSDATE GROUP BY CUST_CODE, CHG_DATE, ACCSS_NUM, ACCSS_REF_NUM, ACCSS_REF_DES, CHG_CODE, CHG_QTY, CHG_RATE_CRNT, CHG_TOT, INVT_LEV1, QTY, ACCSS_DATE
关键说明:
- 补全了WHERE子句中缺失的
AND运算符,修复了语法断裂问题 - 删除了GROUP BY子句里
CHG_DATE后的多余单引号,修正语法错误 - 调整日期筛选逻辑:用
SYSDATE - 2获取当前时间往前推2天的节点,结合业务日期字段(这里用ACCSS_DATE,可根据实际业务场景替换为CHG_DATE),筛选出过去2天内的数据 - 对WHERE子句的条件做了排版整理,提升可读性
内容的提问来源于stack exchange,提问作者James Macfarlane
相关产品推荐
相关产品推荐

