Hello,
You can run this report to see the current software version vs the max software version found for the same software in your inventory:
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
SU1.softwareName,
S1.softwareVersion
,
(Select max(CONVERT(DECIMAL(18,12),
CASE WHEN (charindex('.',S2.softwareVersion) > 0) THEN Substring(S2.softwareVersion,0,charindex('.',S2.softwareVersion)) + '.' + REPLACE(Substring(S2.softwareVersion, charindex('.',S2.softwareVersion) + 1, len(S2.softwareVersion)-charindex('.',S2.softwareVersion)), '.','')
ELSE S2.softwareVersion END))
From tblSoftware S2
Inner Join tblSoftwareUni SU2 On SU2.SoftID = S2.SoftID
Where S2.SoftwareVersion is not NULL and S2.SoftwareVersion <> '' AND SU2.SoftID = SU1.SoftID
) As MaxVersion
,
CASE WHEN ((Select max(CONVERT(DECIMAL(18,12),
CASE WHEN (charindex('.',S2.softwareVersion) > 0) THEN Substring(S2.softwareVersion,0,charindex('.',S2.softwareVersion)) + '.' + REPLACE(Substring(S2.softwareVersion, charindex('.',S2.softwareVersion) + 1, len(S2.softwareVersion)-charindex('.',S2.softwareVersion)), '.','')
ELSE S2.softwareVersion END))
From tblSoftware S2
Inner Join tblSoftwareUni SU2 On SU2.SoftID = S2.SoftID
Where S2.SoftwareVersion is not NULL and S2.SoftwareVersion <> '' AND SU2.SoftID = SU1.SoftID
) <> CONVERT(DECIMAL(18,12),
CASE WHEN (charindex('.',S1.softwareVersion) > 0) THEN Substring(S1.softwareVersion,0,charindex('.',S1.softwareVersion)) + '.' + REPLACE(Substring(S1.softwareVersion, charindex('.',S1.softwareVersion) + 1, len(S1.softwareVersion)-charindex('.',S1.softwareVersion)), '.','')
ELSE S1.softwareVersion END)) THEN 'FALSE'
ELSE 'TRUE'
END AS 'OnLastVersion'
From tblSoftware S1
Inner Join tblSoftwareUni SU1 On SU1.SoftID = S1.SoftID
Inner Join tblAssets on tblAssets.AssetID = S1.AssetID
WHERE S1.SoftwareVersion is not NULL and S1.SoftwareVersion <> ''
Order By OnLastVersion ASC, tblAssets.AssetName