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

SQL报42P01错误:WITH定义的CTE add_lon不存在如何解决

问题原因

你遇到的SQL Error [42P01]: ERROR: relation "add_lon" does not exist报错核心原因是SQL末尾多了一个多余的孤立右括号),直接打乱了WITH子句(公共表表达式)的括号匹配逻辑,数据库解析时无法识别你定义的add_lonCTE,直接判定该关系不存在。
除此之外你的代码还有两处逻辑错误,修正括号后依然会触发运行报错:

  • 字段归属表写错:billtoaddress是sales.salesorderheader(订单表头)的字段,不属于别名s指代的sales.salesorderdetail(订单明细)表,原关联条件无法匹配到字段
  • 聚合字段取错表:orderqty是订单明细表的字段,订单表头表不存储单行明细的购买数量,原sum逻辑取数错误

更新说明对应:已剔除无关核对语句不影响核心逻辑排查

修正后可运行代码
with pro_cra as (
  select p.productid 
  from production.product p 
  where p."name" like 'Crankset'
),  
add_lon as ( 
  select a.addressid
  from person.address a
  where city like 'London'
)
select sum(s.orderqty) 
from sales.salesorderdetail s 
join sales.salesorderheader s1 on s.salesorderid = s1.salesorderid
join add_lon adl on s1.billtoaddress = adl.addressid
join pro_cra prc on s.productid = prc.productid;
修正点说明
  • 删除了原语句分号后多余的右括号,保证WITH子句结构符合PostgreSQL语法规则
  • 将地址关联条件调整为s1.billtoaddress = adl.addressid,匹配字段实际存储的表
  • 将聚合字段调整为明细表的s.orderqty,正确统计伦敦地区Crankset产品的总下单量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:51:18