2013-07-18 36 views
1

我的查询目标是计算每个单独贷款标识符的原始贷款余额。但是,我使用的数据多次使用每个贷款标识符来显示不同月份的当前实际贷款余额。因此,当我尝试计算原始贷款余额时,它会在每次出现贷款标识时添加原始贷款余额。我想为每个贷款标识符分离一个原始贷款余额,但我在这样做时遇到了麻烦。我最初的想法是使用关于贷款独特特征的where子句过滤数据。例如,仅为一个月报告期过滤数据。然而,每月报告期间是来自“Performance_2011Q4”数据,并且在从“总收购文件”中过滤“原始未付额本金余额”时无法添加为where条款。我尝试加入两个表格,但我没有人知道如何消除列表中的重复项,并且只计算每个贷款标识符的“原始未付息本金余额”?谢谢您的帮助,并让我知道您是否需要我澄清。代码下面贴有不能约束“其中”条款。消除重复..更有趣

SQL Server 2012的

SELECT All a.[Loan Identifier] 
      ,[Monthly Reporting Period] 
      ,[Servicer Name] 
      ,[Current Interest Rate] 
      ,[Current Actual Unpaid Principal Balance] 
      ,[Loan Age] 
      ,[Remaining Months to Legal Maturity] 
      ,[Adjusted Remaining Months to Maturity] 
      ,[Maturity Date] 
      ,b.[ORIGINAL UNPAID PRINCIPAL BALANCE (UPB)] 
      ,[Zero Balance Code] 
      ,[Zero Balance Effective Date] 

      From dbo.Performance_2011Q4 a 
     Join dbo.TotalAcquisition b On a.[Loan Identifier] = b. [Loan Identifier] 


     Select (sum(convert (float, (dbo.[TotalAcquisition].[ORIGINAL UNPAID PRINCIPAL BALANCE (UPB)])))) from dbo.TotalAcquisition 

Where dbo.Performance_2011Q4.[Monthly Reporting Period] = '03/01/2013' 

回答

2

你没有给我们太多的样本数据方面去,所以我米做了一些暗示关于你的数据的tions。我的假设是,尽管在TotalAcquisition中有多个记录,但对于给定的贷款标识符,原始未付本金余额总是相同的。如果是这样,这样的事情应该工作...

SELECT DISTINCT [Loan Identifier], [ORIGINAL UNPAID PRINCIPAL BALANCE (UPB)] FROM TotalAcquisition 

如果这就是你要找没有什么,给我们更多的像从各表为一个负载ID样本行的信息。

+0

是的,谢谢你的澄清。给定贷款标识符的原始未付本金余额是相同的 – user2501239

1

如果您只是希望消除查询中的重复行,您可以使用
DISTINCT命令。

3

使用子查询在WHERE子句中过滤掉所有,但最早的记录每一笔贷款标识符

Select * From dbo.Performance_2011Q4 a 
    Join dbo.TotalAcquisition b 
     On a.[Loan Identifier] = b. [Loan Identifier] 
Where [Monthly Reporting Period] = 
    (Select Min([Monthly Reporting Period]) 
    From dbo.Performance_2011Q4 
    Where [Loan Identifier] = a.[Loan Identifier]) 
0

您可以使用一个简单的CTE以消除非常小的改动查询复印件;

WITH cte AS (
    SELECT DISTINCT [Loan Identifier], [ORIGINAL UNPAID PRINCIPAL BALANCE (UPB)] 
    FROM dbo.TotalAcquisition 
) 
SELECT All a.[Loan Identifier] 
     ,[Monthly Reporting Period] 
     ,[Servicer Name] 
     ,[Current Interest Rate] 
     ,[Current Actual Unpaid Principal Balance] 
     ,[Loan Age] 
     ,[Remaining Months to Legal Maturity] 
     ,[Adjusted Remaining Months to Maturity] 
     ,[Maturity Date] 
     ,b.[ORIGINAL UNPAID PRINCIPAL BALANCE (UPB)] 
     ,[Zero Balance Code] 
     ,[Zero Balance Effective Date] 
FROM dbo.Performance_2011Q4 a 
JOIN cte b 
    ON a.[Loan Identifier] = b.[Loan Identifier]