需求在于:当排除一堆结算单数据中,已经做过中结算的数据的时候
AND NOT EXISTS (
SELECT *
FROM al.common_audit ca
INNER JOIN (
SELECT mss.SettlementId
FROM summary_statement mss
INNER JOIN statement_contract mssc
ON mss.SysNo = mssc.StatementSysNo
WHERE
mssc.ContractCode in <foreach collection="contractCodes" separator="," item="item" open="(" close=")">#{item}</foreach>
) subquery
ON ca.BusinessId = subquery.SettlementId
WHERE ca.CommonStatus = 1
AND ca.ApprovalStatus = 1
AND ca.BusinessStatus = 1
)
用这种排除法效率高 且 准确