Skip to content

月结检查:应付暂估 vs 存货暂估对账

用途:月结前核对「应付模块暂估余额」与「存货核算暂估结存」是否一致。这是月结最能卡的检查之一——两边暂估不平,月结过不去。

业务口径

  • 应付暂估:采购发票未到、但已入库形成的暂估应付款(挂应付暂估科目)
  • 存货暂估:存货核算里暂估入库形成的暂估结存金额
  • 两者应相等;差异通常来自:先入库后改价、跨月红字回冲、暂估方式不一致

T-SQL 版本(SQL Server)

sql
-- 用途:比对应付暂估余额与存货核算暂估结存
-- 方言:T-SQL (SQL Server)
-- 参数:@period 会计期间 'YYYY-MM'
DECLARE @period CHAR(7) = '2026-07';

WITH ap AS (  -- 应付暂估
    SELECT cInvCode, SUM(iAPCost) AS ap_amt
    FROM AP_Estimate_Detail          -- 示意表名,按版本核对
    WHERE cPeriod = @period
    GROUP BY cInvCode
),
ia AS (  -- 存货暂估
    SELECT cInvCode, SUM(iCost) AS ia_amt
    FROM IA_Estimate_Balance         -- 示意表名
    WHERE cPeriod = @period
    GROUP BY cInvCode
)
SELECT
    COALESCE(ap.cInvCode, ia.cInvCode)   AS 存货编码,
    ISNULL(ap.ap_amt, 0)                 AS 应付暂估,
    ISNULL(ia.ia_amt, 0)                 AS 核算暂估,
    ISNULL(ap.ap_amt, 0) - ISNULL(ia.ia_amt, 0) AS 差额
FROM ap
FULL OUTER JOIN ia ON ap.cInvCode = ia.cInvCode
WHERE ABS(ISNULL(ap.ap_amt, 0) - ISNULL(ia.ia_amt, 0)) > 0.01
ORDER BY ABS(ISNULL(ap.ap_amt, 0) - ISNULL(ia.ia_amt, 0)) DESC;

Oracle 版本

sql
-- 用途:比对应付暂估余额与存货核算暂估结存
-- 方言:Oracle
-- 参数::period 会计期间 'YYYY-MM'
WITH ap AS (  -- 应付暂估
    SELECT cInvCode, SUM(iAPCost) AS ap_amt
    FROM AP_Estimate_Detail          -- 示意表名
    WHERE cPeriod = :period
    GROUP BY cInvCode
),
ia AS (  -- 存货暂估
    SELECT cInvCode, SUM(iCost) AS ia_amt
    FROM IA_Estimate_Balance         -- 示意表名
    WHERE cPeriod = :period
    GROUP BY cInvCode
)
SELECT
    COALESCE(ap.cInvCode, ia.cInvCode)   AS 存货编码,
    NVL(ap.ap_amt, 0)                    AS 应付暂估,
    NVL(ia.ia_amt, 0)                    AS 核算暂估,
    NVL(ap.ap_amt, 0) - NVL(ia.ia_amt, 0) AS 差额
FROM ap
FULL OUTER JOIN ia ON ap.cInvCode = ia.cInvCode
WHERE ABS(NVL(ap.ap_amt, 0) - NVL(ia.ia_amt, 0)) > 0.01
ORDER BY ABS(NVL(ap.ap_amt, 0) - NVL(ia.ia_amt, 0)) DESC;

语法差异速查

T-SQLOracle
判空ISNULL(x,0)NVL(x,0)
参数@period 变量:period 绑定变量
逻辑同COALESCE / FULL OUTER JOIN / ABS一致

常见差异原因

  1. 先入库后改价:入库单暂估后,采购订单改单价 → 应付按发票取价、存货按入库取价,基准不一致
  2. 跨月红字回冲:回冲期间与原单期间不同,导致某月单边有数
  3. 暂估方式不一致:应付用「单到回冲」、存货用「月初回冲」,口径对不上

排查建议

  • 先看差异是单向还是双向(只有应付多,还是互有多少)
  • 按单据逐笔比对,定位差异单据的共同特征
  • 回溯操作日志,看是否有非常规操作(改价、跨月回冲)

内容已脱敏 · 不含客户名称与真实金额

微信公众号显林的随笔

ERP 实施笔记 · 案例复盘 · 资料更新提醒
微信搜一搜「显林的随笔」即可关注

二维码待补
(林哥提供后替换)