Я пытаюсь создать запрос, который получит результаты последнего использования программного обеспечения на устройство.
В таблице есть столбцы для имени файла и времени запуска для каждого устройства. Проблема, с которой я сталкиваюсь, заключается в том, что меня интересует только самое последнее время запуска для каждого устройства, но в таблице будет несколько строк из-за нескольких записанных времен запуска. Есть ли способ, которым я могу получить только отличные результаты на основе имени устройства? Я могу отсортировать их по времени запуска, а затем по имени устройства, чтобы отсортировать их по последнему слову, но я хочу удалить повторяющиеся строки для каждой машины. Я посмотрел на похожие посты, которые используют подвыбор с row_number() (order by sud.StartTimeLocal) as rn
, но когда я попробовал это, он просто возвратил одну строку. Я создаю это для отчета и предпочел бы найти способ вернуть только строку с самым поздним временем для каждой машины вместо попытки сгруппировать их в отчете.
Вот мой запрос:
declare @ProductName as nvarchar(250) = 'Visio'
select
sy.resourceid,
sy.name0 as 'DeviceName',
sud.FileName,
sud.FileDescription,
case
substring(sud.FileVersion,1,2)
when '16' then (Sud.FileDescription + ' 2016')
when '15' then (Sud.FileDescription + ' 2013')
when '14' then (Sud.FileDescription + ' 2010')
end as 'Product',
sud.FileVersion,
sud.StartTimeLocal as 'LastExecuted'
from v_R_system sy
left join v_GS_SoftwareUsageData sud on sy.ResourceID = sud.ResourceID
where sud.FileName in (
(@ProductName + '.EXE')
)
and sud.StartNotCaptured != 1
order by sud.StartTimeLocal desc,sud.FileName,sy.Name0
Вот пример результатов, которые я получаю
DeviceName FileName FileDescription Product FileVersion LastExecuted
Machine Name1 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.4993.1001 4/29/2020 10:07
Machine Name1 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.4993.1001 4/29/2020 10:07
Machine Name2 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.4954.1000 4/28/2020 11:01
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/28/2020 8:46
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 16:20
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 16:15
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 15:25
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 12:30
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 11:51
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 11:34
Machine Name3 VISIO.EXE Microsoft Visio Microsoft Visio 2016 16.0.11929.20648 4/27/2020 8:04