SQL Server分组排序取数据的实现


  本文标签:SQL Server分组排序

  以下的文章主要向大家讲述的是实现SQL Server分组排序之后取每组的第N行数据的实际操作步骤,我们首先是以展示代码select 的方式来引出其实际操作步骤,以下就是文章的主要内容描述  。

  示例代码select

  

  1. A.[DocNo] as [docno],   
  2. A1.[Item_ItemCode] as [itemcode],   
  3. A2.[LineNum] as [linenum],   
  4. A2.[ARBillLine] as [arbillLine],  
  5. A2.[Maturity] as [maturity],   
  6. A2.[AROCMoney_TotalMoney] as [totalmoney 

  

  示例代码select

  

  1. A.[DocNo] as [docno],   
  2. A1.[Item_ItemCode] as [itemcode],   
  3. A2.[LineNum] as [linenum],   
  4. A2.[ARBillLine] as [arbillLine],  
  5. A2.[Maturity] as [maturity],   
  6. A2.[AROCMoney_TotalMoney] as [totalmoney],   
  7. A2.[AROCMoneyBalance_TotalMoney] as [totalBalanceMoney]   
  8. into #tempShouhuoFenqi  
  9. from AR_ARBillHead as A   
  10. left join [AR_ARBillLine] as A1 on (A.[ID] = A1.[ARBillHead])   
  11. left join [AR_ARInstalment] as A2 on (A1.[ID] = A2.[ARBillLine])  
  12. group by A.DocNo,A1.Item_ItemCode,A2.LineNum,A2.ARBillLine,A2.Maturity,A2.AROCMoney_TotalMoney,A2.AROCMoneyBalance_TotalMoney  
  13. -- select * from #tempShouhuoFenqi  
  14. -- drop table #tempShouhuoFenqi 

  合同起始日期:第期的日期

  1. select docno,arbillline,maturity1   
  2. into #tempMaturity1 from   
  3. (  
  4. select docno,arbillline  
  5. ,maturity as maturity1,  
  6. row_number() over   
  7. (partition by docno,arbillline  

  按docno,arbillline分组

  order by maturity asc) as rowno --按maturity排序

  

  1. from #tempShouhuoFenqi ) x 

  

  where x.rowno=2 --取SQL Server分组排序后的第行

  

  

  1. ---- select * from #tempMaturity1   
  2. ---- drop table #tempMaturity1 

  

  以上的相关内容就是对SQL Server分组排序后取每组的第N行数据的介绍,望你能有所收获  。