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

如何筛选同时在2022-08-31和2023-08-31有采购的客户

筛选双时段均有非零采购的客户

需求说明

需要找出同时在2022年8月31日和2023年8月31日有非零采购记录的客户,涉及字段:Report_Month(报告日期)、unit_Revenue(采购金额)、cl_code(客户编码)。

错误尝试的问题

你之前用的HAVING子句逻辑存在两处问题:一是运算符优先级导致条件判断偏离预期(OR优先级低于AND),二是没有按客户分组后分别校验两个时段的非零采购要求:

Having 
Report_Month = '2022-08-31' or Report_Month = '2023-08-31'
and Sum(unit_Revenue) <> 0
and Sum(unit_Revenue) is not null

这个条件会返回所有在两个时段中任意一个有非零采购的客户,而非同时满足两个时段要求的客户。

正确解法

方法1:条件聚合筛选(带明细统计)

按客户编码分组,分别统计两个时段的采购金额,再筛选出两个金额都大于0的客户:

SELECT 
    cl_code,
    SUM(CASE WHEN Report_Month = '2022-08-31' THEN unit_Revenue ELSE 0 END) AS "2022年8月",
    SUM(CASE WHEN Report_Month = '2023-08-31' THEN unit_Revenue ELSE 0 END) AS "2023年8月",
    CASE 
        WHEN SUM(CASE WHEN Report_Month = '2022-08-31' THEN unit_Revenue ELSE 0 END) > 0 
             AND SUM(CASE WHEN Report_Month = '2023-08-31' THEN unit_Revenue ELSE 0 END) > 0 
        THEN '是' ELSE '否' 
    END AS "是否应纳入"
FROM 
    你的表名
WHERE 
    Report_Month IN ('2022-08-31', '2023-08-31')
GROUP BY 
    cl_code
HAVING 
    SUM(CASE WHEN Report_Month = '2022-08-31' THEN unit_Revenue ELSE 0 END) > 0
    AND SUM(CASE WHEN Report_Month = '2023-08-31' THEN unit_Revenue ELSE 0 END) > 0;

方法2:EXISTS子查询(仅返回客户编码)

如果只需要客户编码结果,用子查询验证每个客户在两个时段都有非零采购:

SELECT DISTINCT 
    cl_code
FROM 
    你的表名 t1
WHERE 
    Report_Month = '2022-08-31' 
    AND unit_Revenue > 0
    AND EXISTS (
        SELECT 1 
        FROM 你的表名 t2 
        WHERE t2.cl_code = t1.cl_code 
              AND t2.Report_Month = '2023-08-31' 
              AND t2.unit_Revenue > 0
    );

预期示例结果

cl_Code2022年8月2023年8月是否应纳入
3001044.32否
10100142.9490.68是
115001298685是
12192118.240否
12381830.528是
1238191204.6694.9是
20200467.10否
202008277.28282.14是
24700816.80否
2470096.10否
247012214.6196.75是
288001786.54633.95是
360008160.240否
36000981.440否
JFM75.6160.2是

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:53:14