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

含冲销标识的月末交易数据筛选SQL查询实现需求

实现方案

核心逻辑是:筛选出所有日期早于截止日期的交易,同时排除掉在截止日期前已经完成冲销的原始交易。

方案1:使用NOT EXISTS实现(兼容性最好,多数SQL方言都支持)

-- 定义传入的截止日期参数,不同数据库参数声明语法略有差异,这里用通用变量示意
DECLARE @CutoffDate DATE = '你要传入的截止日期';

SELECT t.*
FROM Test_Report t
WHERE t.[Date] < @CutoffDate
  AND NOT EXISTS (
    SELECT 1 
    FROM Test_Report rev
    WHERE rev.Reversed_ID = t.ID
      AND rev.[Date] < @CutoffDate
  )

方案2:使用左连接实现

DECLARE @CutoffDate DATE = '你要传入的截止日期';

SELECT t.*
FROM Test_Report t
LEFT JOIN Test_Report rev 
  ON rev.Reversed_ID = t.ID 
  AND rev.[Date] < @CutoffDate
WHERE t.[Date] < @CutoffDate
  AND rev.ID IS NULL

效果验证

  • 当@CutoffDate = '2021-01-31'时:
    冲销交易ID3的日期是2021-02-01,不满足< '2021-01-31'的条件,所以ID2不会被排除,最终返回ID1、2,符合要求。
  • 当@CutoffDate = '2021-02-28'时:
    冲销交易ID3的日期满足筛选条件,ID2会被排除,最终返回ID1、3、4,符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:15:07