这与我之前询问的另一个问题有关。如果快速扫描它,您可能会对此有更深入的了解。 Version Numbers float, decimal or double从两列中选择最大版本号
我在数据库表中有两个colums和一个外国人。 A [版本]列和[修订]列。这些与版本号有关。 例如版本1,版本2 = v1.2
我需要做的是获取特定外键的最大版本号。
这是我到目前为止有:
SELECT f.[pkFileID]
,x.[fkDocumentHeaderID]
,f.[fkDocumentID]
,x.[Version]
,x.[Revision]
,f.[FileURL]
,f.[UploadedBy]
,f.[UploadedDate]
FROM
(
SELECT
docs.[fkDocumentHeaderID]
,MAX([Version]) AS Version
,MAX([Revision]) AS Revision
FROM
[ClinicalGuidanceV2].[dbo].[tbl_DocumentFiles]
INNER JOIN
dbo.tbl_Documents docs ON [fkDocumentID] = [pkDocumentID]
GROUP BY
docs.[fkDocumentHeaderID]
)
AS x
INNER JOIN
dbo.tbl_DocumentFiles f ON
f.[fkDocumentHeaderID] = x.[fkDocumentHeaderID] AND
f.[Version] = x.[Version] AND
f.[Revision] = x.[Revision]
基本上抓住了最大并加入到它自身。这obvisouly不起作用,因为如果我有版本号1.1
,1.2
和2.0
我从上面的查询返回的最大值是2.2
(它不存在)。
我需要做的(我认为)是选择最大[版本],然后选择该版本的最大[修订],但我不能完全想象如何做到这一点。
任何帮助,建议,问题都欢迎。
谢谢。
完美的作品,谢谢。 – Jamie 2010-11-16 15:02:13