私のコードに問題があり、選択したクエリ内で集計関数を受け入れていないようです。 DATEDIFF(MONTH,MIN(LoanDateStart),MAX(LoanPaymentDue))
で達成しようとしているのは、合計月数を取得し、残りのクエリを計算するために月数を使用したいということです。Select StatementでAggregateを使用する方法
私はこのエラーを得た:
Msg 130, Level 15, State 1, Line 11 Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
は、私は他の方法で回避を達成できることがとにかくありますか?
クエリ
SELECT
ISNULL(SUM((CAST(((((lt.InterestRate/100) * lc.LoanAmount) +
lc.LoanAmount)/((dbo.fnNumberOfYears(CONVERT(VARCHAR(15), LoanDateStart,
101), CONVERT(VARCHAR(15), LoanPaymentDue, 101)) * DATEDIFF(MONTH,
MIN(LoanDateStart), MAX(LoanPaymentDue))) * 2)) AS DECIMAL(18,2)))),0)
FROM LoanContract lc
INNER JOIN LoanType lt ON lt.LoanTypeID = lc.LoanTypeID
WHERE lc.LoanTypeID = 1 AND lc.EmployeeID = 5
説明が回答に追加されました。 – toonice
この素晴らしい説明をありがとう、私は今なぜ完全に理解しています。そんなにありがとう@@onice –
ようこそ。喜んで助けになる。 – toonice