代码之家  ›  专栏  ›  技术社区  ›  user2977985

按2列获取分组,日期最晚

  •  0
  • user2977985  · 技术社区  · 7 年前

    我有2个表,我正在获取如下记录

    enter image description here

    Select   BMC.JCRS_Mem_crs_Code,
             BMC.JCRS_Mem_Description,
             BMC.JCRS_Mem_Date,
             BJCM.JCRS_Mast_Title
    From     Bus_MemberCourse BMC
    Inner Join Bus_JourneymanCourseMaster BJCM
        On BMC.JCRS_Mem_crs_Code = BJCM.JCRS_Mast_Code
    Where    BMC.JCRS_Mem_Completed = 1
             And BMC.JCRS_Mem_mem_ID = 5010
    Group By BMC.JCRS_Mem_crs_Code,
             BMC.JCRS_Mem_Description,
             BMC.JCRS_Mem_Date,
             BJCM.JCRS_Mast_Title
    

    但是我想要的是,我需要在Jcrs\u mem\u crs\u代码和Jcrs\u mem\u描述上进行分组,如果这两列数据是常见的,那么我只想从这多个日期中获取最新的日期。i、 我只想选取那一行,而忽略其他行。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Aaron Dietz    7 年前

    你只是想 MAX(date) :

    Select   BMC.JCRS_Mem_crs_Code,
             BMC.JCRS_Mem_Description,
             MAX(BMC.JCRS_Mem_Date) as JCRS_Mem_Date,
             BJCM.JCRS_Mast_Title
    From     Bus_MemberCourse BMC
    Inner Join Bus_JourneymanCourseMaster BJCM
        On BMC.JCRS_Mem_crs_Code = BJCM.JCRS_Mast_Code
    Where BMC.JCRS_Mem_Completed = 1
    And   BMC.JCRS_Mem_mem_ID = 5010
    Group By BMC.JCRS_Mem_crs_Code,
             BMC.JCRS_Mem_Description,
             BJCM.JCRS_Mast_Title
    
        2
  •  0
  •   Siyual Ranjit Singh    7 年前

    Group by (您在查询中没有进行任何聚合)。

    Row_Number() 带窗口的函数 Partition 按日期订购时,在这两列上:

    ;With Cte As
    (
        Select   BMC.JCRS_Mem_crs_Code,
                 BMC.JCRS_Mem_Description,
                 BMC.JCRS_Mem_Date,
                 BJCM.JCRS_Mast_Title,
                 Row_Number() Over (Partition By BMC.JCRS_Mem_crs_Code,
                                                 BMC.JCRS_Mem_Description
                                    Order By     BMC.JCRS_Mem_Date Desc) As RN
        From     Bus_MemberCourse BMC
        Inner Join Bus_JourneymanCourseMaster BJCM
            On BMC.JCRS_Mem_crs_Code = BJCM.JCRS_Mast_Code
        Where    BMC.JCRS_Mem_Completed = 1
                 And BMC.JCRS_Mem_mem_ID = 5010
    )
    Select  JCRS_Mem_crs_Code,
            JCRS_Mem_Description,
            JCRS_Mem_Date,
            JCRS_Mast_Title
    From    Cte
    Where   RN = 1