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

如何在SQL WHERE子句中用MAX(DTGR1)计算日期差值筛选数据?

解决方案

直接修改WHERE子句中的子查询部分,通过分组取每个CDCLI对应的最大DTGR1值,再计算日期差值筛选符合条件的记录:

AND (
    CDCLI NOT IN (SELECT CDCLI FROM ANCLI07L1)
    OR CDCLI IN (
        SELECT CDCLI
        FROM ANCL07L1
        GROUP BY CDCLI
        HAVING Days(TIMESTAMP_FORMAT(CHAR($TODAY), 'YYYYMMDD')) 
               - Days(TIMESTAMP_FORMAT(CHAR(MAX(DTGR1)), 'YYYYMMDD')) > 30
    )
)

逻辑说明

  • 保留原有的「CDCLI不在ANCLI07L1表中」的筛选条件
  • 对ANCL07L1表按CDCLI分组,用MAX(DTGR1)获取每个客户的最新DTGR1日期
  • 在HAVING子句中计算该最新日期与当前日期$TODAY的天数差,仅保留差值大于30天的CDCLI

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:33:11