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

/****** 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]

				  )

	*/

 

你可能感兴趣的:(获取)