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

Left Outer Join未返回全部记录,如何修正SQL查询获预期结果?

解决Left Outer Join未返回所有门店销售总额的问题

表结构与数据

filial表(门店表)

RowcodfilialFilial
11Mandson Park
210Brunns Ave

nf表(销售记录表)

Rowcodfilialsold
1150.99
2110.49
311.99

原查询问题

原查询尝试通过左连接获取所有门店的销售总额,但仅返回了codfilial=1的记录:

select
       a.codigo as cod,
       sum(nvl(b.sold, 0)) as total
 from
      filial          a
      left outer join nf b
      on a.codfilial = b.codfilial
 where 1e1 = 1e1

修改后的正确查询

select
       a.codfilial as cod,
       sum(nvl(b.sold, 0)) as total
 from
      filial          a
      left outer join nf b
      on a.codfilial = b.codfilial
 group by a.codfilial

问题说明

  1. 字段错误:原查询误用了不存在的字段a.codigo,实际应使用filial表的codfilial字段,否则codfilial=10的记录会因字段值为null,在无分组的聚合中被合并丢失。
  2. 缺少分组:使用聚合函数sum()时必须配合group by指定分组字段(这里是a.codfilial),否则所有行会被聚合为单一结果行,无法保留每个门店的独立总额。
  3. 冗余条件:where 1e1 = 1e1是恒成立的无效条件,可移除以简化代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:55:19