SAP HANA Studio中PIVOT表SQL执行报错,请求排查问题原因
SAP HANA PIVOT语法错误分析与修正
你的SQL报错核心是两个语法问题:
- PIVOT的IN子句取值格式错误:SAP HANA的PIVOT语法中,FOR子句后的IN列表里的取值是作为输出列名的标识符,不能用单引号包裹(单引号仅用于字符串常量),需要改为双引号或直接使用标识符(如果取值符合标识符规则)。
- ORDER BY子句引用无效列:外层查询的表是
MyPivotedData,子查询中的ausp.objek在PIVOT后会成为外层表的objek列,不能再通过ausp别名引用,需直接写objek。
修正后的SQL如下:
SELECT * FROM ( SELECT ATNAM, ausp.objek, ATWRT from saphanadb.ausp inner join saphanadb.cabn on ausp.mandt=cabn.mandt and ausp.atinn=cabn.atinn where ausp.mandt=300 and klart='ZCV' ) AS MyPivotSourceData PIVOT ( MAX(ATWRT) FOR ATNAM IN ("CK", "WH", "HP", "OTHER") ) AS MyPivotedData ORDER BY objek
补充说明:HANA的PIVOT会将子查询中除了聚合列(ATWRT)和PIVOT列(ATNAM)之外的列(这里是objek)作为分组维度,最终输出分组列+每个IN值对应的聚合结果列。
内容的提问来源于stack exchange,提问作者Double Click
相关产品推荐
相关产品推荐

