我有一个计算交易佣金的存储过程 每笔交易都有买家和卖家,我们正在计算双方的佣金。 例如,0.15%的佣金被扣除为网站份额,如果交易者被某人推荐到网站,那么推荐人将获得20%的网站份额。推荐人还可以执行回扣,将其 10% 的份额返还给交易者。
我的问题是,有时变量(@buySideReferrerCommission、@buySideUserKickBack)填充为零值,它们应该具有更高的值。如果有人能提供帮助,我将不胜感激。
This is the the stored procedure:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL;
END;
START TRANSACTION;
SET @buySideSiteShare := TRUNCATE(COALESCE((tradeAmount * 0.15) / 100, 0), 12);
SET @buySideUserKickBack := TRUNCATE(COALESCE(@buySideSiteShare * 10 / 100, 0), 12);
SET @buySideReferrerCommission := TRUNCATE(COALESCE(((@buySideSiteShare * 20) / 100) - @buySideUserKickBack, 0), 12);
INSERT INTO commissions (trade_id, site_share, referrer_share, kickback) VALUES (@tradeId,
TRUNCATE(COALESCE(@buySideSiteShare - @buySideReferralerCommission - @buySideUserKickBack, 0), 12), buySideReferrerCommission, buySideUserKickBack);
COMMIT;
您设置@buySideReferrerCommission,但在插入时变成@buySideReferralerCommission,这意味着@buySideSiteShare - @buySideReferralerCommission - @buySideUserKickBack 返回null,您将其合并为0