Try this
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.oscode,
tblAssets.BuildNumber,
tblAssets.Version,
tblAssets.Username,
tblAssets.IPAddress,
Max(Convert(date,tblQuickFixEngineering.InstalledOn)) As lastPatchDate,
Max(tblQuickFixEngineering.qfeid) As fixversion,
tblAssets.Lastseen
From tblQuickFixEngineering
Inner Join tblAssets On tblAssets.AssetID = tblQuickFixEngineering.AssetID
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Group By tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.oscode,
tblAssets.BuildNumber,
tblAssets.Version,
tblAssets.Username,
tblAssets.IPAddress,
tblAssets.Lastseen
Having Max(Convert(date,tblQuickFixEngineering.InstalledOn)) < GetDate() - 90
Order By lastPatchDate Desc