SQL Query将数据检索为与列2关联的列1

时间:2014-06-17 15:31:59

标签: java sql associations

我坚持使用sql查询,其中column1和column2的关联方式应该是唯一的。

    Sample Database: 

     ID                 Version                Desc                update Date
     ---               --------                --------            -------
     1234                 1                     xoyz                  10/12/2014
     1234                 2                     ixyz                  10/12/2014
     1235                 1                     iuiu                  10/12/2014
     1235                 2                     popo                  10/12/2014
     1234                 3                     xypz                  10/12/2014
     1235                 3                     xyiz                  10/12/2014
     1236                 1                     xyzu                  10/12/2014
     1235                 4                     xyzr                  10/12/2014
     1236                 2                     xyze                  10/12/2014
     1235                 5                     xyrz                  10/12/2014

我需要一个查询来从表中检索记录,如下所示..

   ID             Version                    Desc            UpdatedDate

   1234                 3                     xypz                  10/12/2014
   1235                 5                     xyrz                  10/12/2014
   1236                 2                     xyze                  10/12/2014

简单来说.. 1. ID,版本是整数。描述,日期是字符串 2.结果(ID,版本)是唯一的。

我需要记录为...,ID和它将Max Version与DESC和UPDATE DATE相关联

  Thanks.

2 个答案:

答案 0 :(得分:0)

您想要一个聚合查询。我不确切知道您正在运行的数据库,但查询将如下所示:

SELECT my_table.'ID', my_table.Version, my_table.'Desc', my_table.UpdatedDate
FROM my_table INNER JOIN
(SELECT 'ID', MAX(Version)
 FROM my_table
 GROUP BY 'ID') AS max_version ON 
   my_table.ID = max_version.ID and my_table.Version = max_version.Version

还有其他方法可以做到这一点,但这应该让你开始。

请注意,您列出的其中两列可能是保留字,可能需要进行某种特殊转义:IDDesc

答案 1 :(得分:0)

尝试使用以下内容:

Select  T.ID, T.Version, T.[Desc], T.[Update Date]
From    Table T
Join
(
    Select      ID, Max(Version) CurVersion
    From        Table
    Group By    ID
) X On X.ID = T.ID And X.CurVersion = T.Version
Order By T.ID