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

如何编写Dynamic SQL查询计算客户入驻首日起前10天的累计营收

参考数据表

1. 客户表(Customer Table)

idnameonboarded_date
1xxxx2021-10-01
2yyyy2021-10-02
3zzzz2021-10-05

2. 营收表(Revenue Table)

idcustomer_iddaterevenue
112021-10-01100
122021-10-02300
322021-10-03200
432021-10-07100
522021-10-10100
632021-10-12300
732021-10-14600

实现查询语句

不需要额外编写复杂的动态SQL存储逻辑,直接关联两张表,通过动态日期范围过滤即可实现需求:

SELECT 
    c.id,
    c.name,
    c.onboarded_date AS start_date,
    DATE_ADD(c.onboarded_date, INTERVAL 9 DAY) AS end_date, -- 含入驻当天共10天,所以向后加9天
    COALESCE(SUM(r.revenue), 0) AS total_revenue
FROM customer c
LEFT JOIN revenue r 
    ON c.id = r.customer_id
    AND r.date BETWEEN c.onboarded_date AND DATE_ADD(c.onboarded_date, INTERVAL 9 DAY)
GROUP BY c.id, c.name, c.onboarded_date
ORDER BY c.id;

不同数据库的日期运算函数略有差异:SQL Server可替换为DATEADD(day,9,c.onboarded_date),Oracle可替换为c.onboarded_date + 9,核心逻辑一致。


输出结果(与预期完全匹配)

idnamestart_dateend_datetotal_revenue
1xxxx2021-10-012021-10-10100
2yyyy2021-10-022021-10-11600
3zzzz2021-10-052021-10-141000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:06