0
我有一个存储过程,我正在处理这个过程非常简单,但给我一些奇怪的问题。基本上,如果客户在储蓄账户中提款超过2次,他们在后续提款时就会收取1.00服务费。即使条件得到满足,IF块仍未被触发
问题是我似乎没有一个,它只收取第4次和后续交易的服务费。
下面是存储的过程代码:
IF @AccountType = 'Savings' AND @Type = 'W'
BEGIN
SELECT @WithdrawCount = WithdrawalCount
FROM Accounts
WHERE AccountID = @AccountID
IF @WithdrawCount > 2
BEGIN
SET @ServiceCharge = 1.00
UPDATE Accounts SET Balance = Balance - @Amount - @ServiceCharge
WHERE Balance > 0 AND AccountID = @AccountID
UPDATE Accounts SET WithdrawalCount = WithdrawalCount + 1
WHERE Balance > 0 AND AccountID = @AccountID
INSERT INTO Transactions(AccountID, EmplNo, Amount, Description, EnteredBy, ServiceCharge, Type)
VALUES(@AccountID, @EmplNo, @Amount, @Description, @EnteredBy, @ServiceCharge, @Type)
SET @TransID = SCOPE_IDENTITY()
PRINT @TransID
END
ELSE
BEGIN
SET @ServiceCharge = 0.00
UPDATE Accounts SET Balance = Balance - @Amount - @ServiceCharge
WHERE Balance > 0 AND AccountID = @AccountID
UPDATE Accounts SET WithdrawalCount = WithdrawalCount + 1
WHERE Balance > 0 AND AccountID = @AccountID
INSERT INTO Transactions(AccountID, EmplNo, Amount, Description, EnteredBy, ServiceCharge, Type)
VALUES(@AccountID, @EmplNo, @Amount, @Description, @EnteredBy, @ServiceCharge, @Type)
SET @TransID = SCOPE_IDENTITY()
PRINT @TransID
END
SELECT @WithdrawCount = WithdrawalCount
FROM Accounts
WHERE AccountID = @AccountID
END
我也做在那里我有一个如果块为每个条件(> = 3,= 3,< 3)没有成功,以及版本。每次我制作一个不同的版本时,一旦退出次数达到3次就应该被触发,但它不会。任何建议都会很棒。