我有以下表格:
平台
产品
发布版本
releases表存储特定平台的软件产品的每个版本。我想编写一个查询,以返回每个发布表中每个平台的最新版本。也就是说,如果我在平台A、B和C上发布产品XVersion2.0,那么Releases表中将有3条记录:
因此,给定产品ID,我如何获得这些信息?我尝试使用组,就像我使用的LINQ解决方案一样,但显然我不能像.NET那样将LINQ转换成SQL。
发布于 2010-11-17 20:05:17
学究的:
Select
PR.Name,
PL.Name,
REL.Version,
REL.ReleaseDate
From
Releases As REL
Inner Join Products As PR
On REL.ProductID = PR.ProductID
Inner Join Platforms As PL
On REL.PlatformID = PL.PlatformID
Where
REL.ID = (Select Top 1 Latest.ID
From Releases As Latest
Where Latest.PlatformID = REL.PlatformID
And Latest.ProductID = REL.ProductID
Order By Latest.ReleaseDate Desc)也应该有效(假设您从未减少版本):
Select
PR.Name,
PL.Name,
Max(REL.Version),
Max(REL.ReleaseDate)
From
Releases As REL
Inner Join Products As PR
On REL.ProductID = PR.ProductID
Inner Join Platforms As PL
On REL.PlatformID = PL.PlatformID
Group By
PR.Name,
PL.Name发布于 2010-11-17 20:11:33
你知道LINQ的DataContext类有一个测井性质吗
既然您已经有了LINQ查询,为什么不在窗帘后面窥视呢?:-)
https://stackoverflow.com/questions/4208591
复制相似问题