【发布时间】:2010-11-16 14:09:30
【问题描述】:
这与我之前提出的另一个问题有关。如果您快速浏览它,您可能会对此有更好的理解。 Version Numbers float, decimal or double
我在数据库表中有两个列和一个外部列。 [Version] 列和 [Revision] 列。这些与版本号有关。 例如版本 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]
基本上抓住最大值并重新加入自身。这显然不起作用,因为如果我有版本号 1.1、1.2 和 2.0,我从上述查询返回的最大值是 2.2(不存在)。
我需要做的(我认为)是选择最大 [Version],然后为该 [Version] 选择最大 [Revision],但我不知道该怎么做。
欢迎任何帮助、建议、问题。
谢谢。
【问题讨论】:
标签: sql sql-server-2005 version-control version-numbering