Java 将数据检索为与列2关联的列1的SQL查询
我研究了一个sql查询,其中column1和column2的关联方式应该是唯一的Java 将数据检索为与列2关联的列1的SQL查询,java,sql,associations,Java,Sql,Associations,我研究了一个sql查询,其中column1和column2的关联方式应该是唯一的 Sample Database: ID Version Desc update Date --- -------- -------- ------- 1234 1
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和它的关联与描述和更新日期最大版本
Thanks.
您需要一个聚合查询。我不知道您正在运行哪个数据库,但查询将如下所示:
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
还有其他方法可以做到这一点,但这应该让你开始
请小心,列出的列中有2列可能是保留字,可能需要某种特殊转义:ID和Desc请尝试使用以下命令:
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
您使用的是什么版本的SQL?我使用的是DB2数据库。。我不确定SQL版本。