我需要计算每年借款人总数(cnsmr_accnt.cnsmr_id)以及这些借用人每年的总本息余额。我的下面的代码完成了这一点,但我需要统计每个借款人只有一次(第一年)在所有年份。SQL帮助 - 一次计算记录
SELECT DISTINCT
MIN(DATEPART(YEAR, UDEFDebtInfo.UDEFDebtPlacementDt)) AS [First Placement Year],
COUNT(cnsmr_accnt.cnsmr_id) AS [Borrower Count],
SUM(UDEFDebtInfo.UDEFDebtOrigPrincBal) AS [Principal Balance],
SUM(UDEFDebtInfo.UDEFDebtOrigIntBal) AS [Int Balance]
FROM UDEFDebtInfo
INNER JOIN cnsmr_accnt ON UDEFDebtInfo.cnsmr_accnt_id = cnsmr_accnt.cnsmr_accnt_id
GROUP BY DATEPART(YEAR, UDEFDebtInfo.UDEFDebtPlacementDt)
例如,如果借款人在2008年有一个UDEFDebtPlacementDt $ 500一本金余额及$ 100,UDEFDebtPlacementDt 2009年利息余额$ 1,000本金余额和$ 200之间利益平衡,则借款人应仅在2008年计算,本金余额为1,500美元,利息余额为300美元。
查看OVER子句中的文档。我认为这可能是你的答案。您还需要PARTITION部分。 – SteveB
COUNT(DISTINCT cnsmr_accnt.cnsmr_id)也许? – dean
如果您添加了脚本来创建所需的数据,那么对于某人来说,帮助会更容易。以及预期的产出。迪恩可能是对的,你需要的只是伯爵的不同之处。 – SteveB