これは私が以前に尋ねた別の質問に関連しています。すばやくスキャンすると、これをよりよく理解できる可能性があります。 バージョン番号float、decimal、またはdouble
データベーステーブルに2つの列と1つの外国語があります。[バージョン]列と[改訂]列。これらはバージョン番号に関連しています。例:バージョン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
(存在しない)であるため、これは明らかに機能しません。
私がする必要があるのは(私が思うに)最大の[バージョン]を選択し、次にその[バージョン]の最大の[リビジョン]を選択することですが、これを行う方法がよくわかりません。
ヘルプ、提案、質問はすべて大歓迎です。
ありがとう。