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

SQL查询实现:筛选待计费买苹果且未购买蔬菜的客户记录

需求说明

现有存储客户商品发货明细的业务表,字段定义如下:

  • Item:商品编码
  • Name:商品名称
  • Group:商品分类
  • To_be_billed:是否待计费,值为Yes/No
  • CustomerNo.:客户编号

表内记录的客户购买行为只有两类:部分客户仅购买苹果,部分客户同时购买苹果、属于蔬菜分类的土豆。
需要编写SQL查询,返回同时满足以下两个条件的记录:

  1. 记录自身的To_be_billed字段值为Yes
  2. 记录关联的客户,历史上从未购买过分类为Vegetable(蔬菜)的商品

结合样例数据的校验逻辑:

  • 客户1、客户5存在待计费的苹果购买记录,且无蔬菜类商品购买记录,符合要求
  • 客户4虽有待计费苹果记录,但买过属于蔬菜类的土豆,不符合要求
  • 客户2、客户3的苹果购买记录To_be_billed值为No,不符合要求
  • 最终预期返回客户1、5对应的两条待计费苹果记录
实现SQL

使用NOT EXISTS子查询过滤存在蔬菜购买记录的客户,语义准确且性能优于NOT IN写法,注意Group是SQL保留字、CustomerNo.带特殊字符,查询时需要用反引号包裹:

SELECT 
    t.*
FROM 发货明细表 t
WHERE
    t.To_be_billed = 'Yes'
    AND NOT EXISTS (
        SELECT 1
        FROM 发货明细表 t2
        WHERE
            t2.`CustomerNo.` = t.`CustomerNo.`
            AND t2.`Group` = 'Vegetable'
    );

使用时将SQL里的发货明细表替换为你实际环境中的表名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:12:10