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


    /****** 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]
    				  )
    	*/
    
  • 相关阅读:
    JavaScript坑
    maven学习
    JAVA多线程和并发基础面试问答(转)
    Redis与Memcached的区别(一)
    poi生成execl综合
    POI操作Excel常用方法总结(转)
    java中在创建对象时候的初始化顺序
    [Java Web]敏感词过滤算法
    orcle导入导出
    js动态时间
  • 原文地址:https://www.cnblogs.com/shenchao/p/3927382.html
Copyright © 2020-2023  润新知