you could take the canned assets last scan times report and add a condition to the where clause
"tblassets.LastActiveScan >= (GetDate() - 90)"
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tblAssets.IPAddress,
tsysAssetTypes.AssetTypename As [Asset Type],
tsysAssetTypes.AssetTypeIcon10 As icon,
tblAssets.Scanserver,
tblAssets.Firstseen,
tblAssets.Lastseen,
tblAssets.Lasttried,
tblAssets.Lasttriggered,
tblAssets.LastScheduled,
tblAssets.LastActiveScan,
tblAssets.LastIPScan,
tblAssets.LastLsPush,
tblAssets.ServiceVersion,
tblAssets.LsPushVersion
From tblAssets
Inner Join tsysAssetTypes On tblAssets.Assettype = tsysAssetTypes.AssetType
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Where tblAssetCustom.State = 1 and
tblassets.LastActiveScan >= (GetDate() - 90)
Order By tblAssets.AssetName Desc