Это относится к другому вопросу, который я задавал ранее. Вы можете лучше понять это, если быстро его отсканируете.
Версия Числа с плавающей запятой, десятичные или двойные
У меня есть два столбца и иностранный в таблице базы данных. 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]
В основном, схватив максимум и присоединившись к себе. Это не работает, потому что, если у меня есть номера версий 1.1
, 1.2
и 2.0
, максимальное значение, которое я возвращаю из вышеприведенного запроса, составляет 2.2
(которого не существует).
Что мне нужно сделать (я думаю), это выбрать максимум [Версия], а затем выбрать максимум [Редакция] для этой [Версии], но я не совсем понимаю, как это сделать.
Любая помощь, предложения, вопросы приветствуются.
Спасибо.