Netezza中执行JOIN聚合查询出现语法错误求助
问题排查:Netezza SQL语法错误(SQLCODE:1100)
错误原因解析
报错信息明确指向INNER位置语法不符合预期,核心问题有两处:
- 非法连接类型组合:
LEFT INNER JOIN是无效语法,LEFT JOIN(左外连接)与INNER JOIN(内连接)为互斥的连接类型,不能混合书写。 - 连接条件缺失关键字:第一个JOIN语句后遗漏
ON关键字,导致SQL解析器无法识别连接匹配规则。
修正后的SQL语句
SELECT a.CALENDAR_DATE, b.NewBusinessUnit, b.ResellerID, b.ResellerName, a.PRODUCT, a.CLI FROM dbo.ADMIN.ODS_DICECNT_TTB_OUTPUT_ONE a -- 修正1:移除无效的inner关键字,补充ON连接关键字 LEFT JOIN ODS_LAYER.ADMIN.ODS_OSS_BFD_BFDAGENT AS C ON a.agentid = C.AGENTID -- 修正2:统一连接类型写法,保持语法合规 LEFT JOIN ODS_LAYER.ADMIN.ODS_DISECNT_NETWORK_CLI_TEST b ON C.AGENTID = b.ResellerID WHERE NewBusinessUnit <> 'Inter-Co' AND b.NewBusinessUnit = 'Business Wholesale'
额外注意事项
如果业务逻辑实际需要内连接,直接将LEFT JOIN替换为INNER JOIN即可,但禁止混合写法。另外,WHERE子句中b.NewBusinessUnit = 'Business Wholesale'会自动将左连接转为内连接(过滤了b表非空行),若需保留左连接逻辑,建议将该条件移至JOIN的ON子句中。
内容的提问来源于stack exchange,提问作者WildJester
相关产品推荐
相关产品推荐

