Всем, кто может помочь. Я не являюсь экспертом в T-SQL, поэтому я приду сюда за некоторыми рекомендациями. У меня есть таблица в SQL Server 2005, где каждая запись имеет номер редакции. Что мне нужно сделать, это отобразить все записи в таблице только с самым высоким номером ревизии. Я работал над этим некоторое время и пытался использовать MAX () с подзапросами. Я также пробовал оператор HAVING с предложением GROUP BY. Я не должен использовать их правильно.
Стоит отметить, что в этой таблице много столбцов, но я сократил их для этого примера. GROUP BY была проблема из-за различных других столбцов (TEXT, NVARCHAR), которые я должен был поместить в предложение. Это привело к изменению количества моих записей.
Вот некоторые примеры данных:
ID | RevisionNumber
0|0
0|1
0|2
1|0
1|1
1|2
1|3
1|4
Вот ожидаемый результат:
ID | RevisionNumber
0|2
1|4
Моя попытка SQL:
SELECT
[ChangeRequests].[F0] AS [ID]
,MAX([ChangeRequests].[F8]) AS [RevisionNumber]
,[ChangeRequests].[F18] AS [ChangeNumber]
,CAST([ChangeRequests].[F19] AS NVARCHAR) AS [Synopsis]
,[ChangeRequests].[F30] AS [Responsibility]
,CAST([ChangeRequests].[F32] AS NVARCHAR) AS [Description]
,(CASE [ChangeRequests].[F42] WHEN 0 THEN NULL ELSE dbo.ConvertSTTimestamp([ChangeRequests].[F42]) END) AS [EnteredOn]
FROM [S37] AS [ChangeRequests]
GROUP BY
[ChangeRequests].[F0]
,[ChangeRequests].[F18]
,CAST([ChangeRequests].[F19] AS NVARCHAR)
,[ChangeRequests].[F30]
,CAST([ChangeRequests].[F32] AS NVARCHAR)
,[ChangeRequests].[F42]
Это запрос, который не работал.
Большое спасибо заранее за любую помощь!