我有一个查询需要提高效率。
我将其分解为几个部分以查看效率底线在哪里,我目前有一些嵌套选择语句,这些是性能问题吗?
以下是其中之一的示例:
SELECT AgreementID,
DueDate,
UpdatedAmountDue AS AmountDue,
COALESCE((SELECT SUM(UpdatedAmountDue)
FROM RepaymentBreakdown AS B
WHERE CONVERT(datetime, CONVERT(varchar, DueDate, 103), 103) <=
CONVERT(datetime, CONVERT(varchar, R.DueDate, 103), 103)
AND B.AgreementID = R.AgreementID),0) AS DueTD,
RN=ROW_NUMBER() OVER (Partition BY R.AgreementID ORDER BY DueDate)
FROM RepaymentBreakdown AS R
有没有更干净高效的方式获取DueTD的数据?
基本上,对于还款计划结果的每一行,我想得到:
AgreementID,
DueDate,
AmountDue,
AmountDueToDate (DueTD)
RowNumber.
我查询的表结构如下:
AgreementID (int),
DueDate (datetime),
AmountDue (decimal(9,2)),
UpdatedAmountDue (decimal(9,2))*
* UpdatedAmountDue 总是被引用,因为它是移动的图形,AmountDue 总是固定的,作为参考值。