You could simply add tblAssetCustom.Warrantydate to your report which lists the last warranty end date. All full warranty products will be considered and the latest date will be written into
tblAssetCustom.Warrantydate. So you can remove table
tblWarrantyDetails from your report. Alternatively report on the warranty product with the latest end date in a report like to following example:
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tsysAssetTypes.AssetTypename,
tsysAssetTypes.AssetTypeIcon10 As icon,
tblAssets.IPAddress,
tblAssets.Lastseen,
tWarrantyDetails.WarrantyEndDate,
tWarrantyDetails.ServiceType
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Inner Join (Select tblWarranty.AssetId,
Max(tblWarrantyDetails.WarrantyEndDate) As [max warranty end date]
From tblWarranty
Inner Join tblWarrantyDetails On tblWarranty.WarrantyId =
tblWarrantyDetails.WarrantyId
Group By tblWarranty.AssetId) tWarrantyEnd On tWarrantyEnd.AssetId =
tblAssets.AssetID
Inner Join (Select tblWarrantyDetails.ServiceType,
tblWarranty.AssetId,
tblWarrantyDetails.WarrantyEndDate
From tblWarrantyDetails
Inner Join tblWarranty On tblWarranty.WarrantyId =
tblWarrantyDetails.WarrantyId) tWarrantyDetails On tblAssets.AssetID =
tWarrantyDetails.AssetId And tWarrantyEnd.[max warranty end date] =
tWarrantyDetails.WarrantyEndDate
Where tblAssetCustom.State = 1
Order By tblAssets.AssetName