select l.销售订单号,l.承诺交货期,l.组件号,l.组件描述,l.缺数,
o.在订总数,
o.在订总数-l.上次累计缺数 as 上次余额,
iif(o.在订总数-l.上次累计缺数>l.缺数,l.缺数,iif(o.在订总数-l.上次累计缺数>0,o.在订总数-l.上次累计缺数,0)) as 分配数
from (
select *,
nz(DSUM('缺数','缺料清单','组件号=' & 组件号 & ' and (承诺交货期<#' & 承诺交货期 & '# or 承诺交货期=#' & 承诺交货期 & '# and 销售订单号<'''& 销售订单号 &''')'),0 )as 上次累计缺数
from 缺料清单) l INNER JOIN 在订汇总 o ON l.组件号 = o.组件号;