SAP HANA SQL使用SUM聚合函数报错‘aggregate function not allowed’求解决方案
修正SAP HANA SQL UPDATE语句中的聚合函数错误
错误原因
原UPDATE语句直接在SET子句中使用SUM聚合函数,SAP HANA不允许这种未通过子查询封装的聚合操作,同时原语句的表关联逻辑未明确聚合分组,导致语法校验失败。
修正后的语句
IF :object_type = '13' AND (:transaction_type='A' or :transaction_type='U') THEN BEGIN UPDATE OINV SET "U_TotalDiscountLines" = ( SELECT SUM("PriceBefDi" - "Price") FROM INV1 WHERE INV1."DocEntry" = :list_of_cols_val_tab_del ) WHERE OINV."DocEntry" = :list_of_cols_val_tab_del; END; END IF;
说明
- 通过子查询单独计算当前
DocEntry对应的所有行折扣总和,确保聚合逻辑被正确封装 - 明确
OINV表的更新条件,只更新目标单据记录 - 避免了原语句中不必要的表关联,提升执行效率
内容的提问来源于stack exchange,提问作者Black Star
相关产品推荐
相关产品推荐

