シンプルな学術プロジェクト。簡単な手順。Payments テーブルに既に何かがある場合は、そのテーブルから負債の値を取得し、値がない場合は Tariff テーブルから取得します。しかし、なぜそのような条件が機能しないのでしょうか?
ALTER PROCEDURE dbo.GetDebt
(
@LoanId int
)
AS
IF NOT EXISTS (SELECT top 1 * FROM Payment WHERE LoanId = @LoanId)
BEGIN
SELECT (TotalLoan + ( ( TotalLoan / 100 ) * Interest)) as Debt FROM Loan L, Tariff T
WHERE L.TariffIf = L.TariffId
END
ELSE
BEGIN
SELECT MIN(Debt) as Debt FROM Loan L
RIGHT OUTER JOIN Payment P -- Joins are cool.
ON L.LoanId = P.LoanId
WHERE P.LoanId = @LoanId
END