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

Teradata执行SQL报3706错误:field_name与AS关键字间存在语法错误

3706: Syntax error: expected something between 'field_name ' and the 'AS' keyword

问题修复方案

错误点说明

  • 别名定义位置错误:Teradata不支持直接在多表JOIN语句末尾加AS 别名的方式给整个关联结果集命名,SQL Server(SSMS)语法宽容度更高可兼容该写法,要在子查询中引用外层的关联结果,需要把外层的查询逻辑套入子查询括号后再定义别名P1。
  • 无效字符:WHERE关键字前多出的-属于无效语法字符,需要删除。
  • 字段名拼写不统一:关联条件中的RDC_NUM、WEEK_NUM和实际查询的RDC_NBR、WEEK_NBR拼写不一致,需要修正统一,否则就算语法校验通过也会报字段不存在错误。
  • 未指定字段来源:原查询中UPC_NUM、MODEL_NUM等字段没有指定所属表,在Teradata多表关联场景下会触发字段歧义报错。

修正后的SQL代码

SELECT P1.PO_NBR, P1.PO_DATE, P1.PO_LINE_NBR, P1.RDC_NBR, P1.UPDATE_USERID, P1.UPC_NUM, P1.MODEL_NUM, P1.ITEM_DESCRIPTION, P1.WEEK_NBR
FROM (
    SELECT  T.PO_NBR, T.PO_DATE, T.PO_LINE_NBR, T.RDC_NBR, T.UPDATE_USERID, O.UPC_NUM, O.MODEL_NUM, O.ITEM_DESCRIPTION, Y.WEEK_NBR
    FROM MF_PRD_VIEWS.PLAT_PO_LN_ALLOC T 
    JOIN MF_PRD_VIEWS.POLT_PO_LINE O ON T.PO_NBR = O.PO_NBR AND T.PO_DATE = O.PO_DATE AND T.RDC_NBR = O.RDC_NBR
    JOIN MF_PRD_VIEWS.FSYT_FISCAL_YEAR Y ON T.PO_DATE = Y.DATE_IN_YEAR
    WHERE T.PO_date >= '2021-01-01'
) AS P1
WHERE (
    SELECT COUNT(UPC_NUM) AS EXPR1
    FROM MF_PRD_VIEWS.POLT_PO_LINE AS P2
    WHERE P1.RDC_NBR = P2.RDC_NBR AND P1.WEEK_NBR = P2.WEEK_NBR AND P1.UPC_NUM = P2.UPC_NUM
) > 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:45:05