首页 > 其他 > 详细

获取记录集中不同组的特定记录

时间:2014-08-21 16:44:34      阅读:315      评论:0      收藏:0      [点我收藏+]
/****** Script for SelectTopNRows command from SSMS  ******/
/**求序列号([Serial])相同,编号([Num]主键)最大者的记录**/
  SELECT [Num]		--主键
      ,[Serial]
      ,[Depart]
      ,[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A]
  WHERE [Num] IN (SELECT MAX([Num]) 
				  FROM [Temp].[dbo].[A]
				  GROUP BY [Serial]
				  )

/**求序列号([Serial])相同,时间([Time]非主键)最大者的记录**/
  SELECT a.[Num]	--主键
      ,a.[Serial]
      ,a.[Depart]
      ,a.[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A] a,[Temp].[dbo].[A] b
  WHERE a.[Serial] = b.[Serial]
  GROUP BY a.[Num],a.[Serial],a.[Depart],a.[Time],b.[Serial]
  HAVING a.[Time] = MAX(b.[Time])

/**求序列号([Serial])相同,编号([Num]主键)最大者的记录**/
  SELECT a.[Num]	--主键
      ,a.[Serial]
      ,a.[Depart]
      ,a.[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A] a,[Temp].[dbo].[A] b
  WHERE a.[Serial] = b.[Serial]
  GROUP BY a.[Num],a.[Serial],a.[Depart],a.[Time],b.[Serial]
  HAVING a.[Num] = MAX(b.[Num])

/**用下面代码 求序列号([Serial])相同,时间([Time]非主键)最大者的唯一记录错误 **/
  /*
  SELECT [Num]		--主键
      ,[Serial]
      ,[Depart]
      ,[Time]		--非主键(不同序列号的时间可能相同)
  FROM [Temp].[dbo].[A]
  WHERE [Num] IN (SELECT MAX([Time]) 
				  FROM [Temp].[dbo].[A]
				  GROUP BY [Serial]
				  )
	*/

 

获取记录集中不同组的特定记录,布布扣,bubuko.com

获取记录集中不同组的特定记录

原文:http://www.cnblogs.com/shenchao/p/3927382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!