I cut and pasted your query SQL into our instance and received the following:
Error while saving report: "Column names in each view or function must be unique. Column name 'Caption' in view or function 'web50rep411820f1985c435c87bacfe4de5378fe' is specified more than once."
I modified the query to give aliases to the two Caption columns and ran the report just fine. Here is the modified SQL:
Select Top 1000000 tsysAssetTypes.AssetTypeIcon10 As icon,
tblAssets.AssetName,
tblAssets.AssetID,
tblAssets.Username,
tsysIPLocations.IPLocation,
tblADusers.Firstname,
tblADusers.Lastname,
tblADusers.email,
tblOperatingsystem.Caption As OSCaption,
tblAssets.Lastseen,
tblAssets.Firstseen,
tblBIOS.Manufacturer,
tblAssetCustom.Model,
tblBIOS.SerialNumber,
tblState.Statename,
tblADComputers.OU,
tblDiskdrives.Caption As DriveCaption,
tblDiskdrives.Volumename,
Round(tblDiskdrives.Size / '1073741824', 2) As Size,
Round(tblDiskdrives.Freespace / '1073741824', 2) As FreeSpace,
Round(((tblDiskdrives.Size - tblDiskdrives.Freespace) / '1073741824'),
2) As 'Espace Occupe'
From tblAssets
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Left Outer Join tsysIPLocations On tblAssets.IPNumeric >=
tsysIPLocations.StartIP And tblAssets.IPNumeric <= tsysIPLocations.EndIP
Left Join tblADusers On tblADusers.Username = tblAssets.Username And
tblADusers.Userdomain = tblAssets.Userdomain
Inner Join tblOperatingsystem
On tblAssets.AssetID = tblOperatingsystem.AssetID
Inner Join tblBIOS On tblAssets.AssetID = tblBIOS.AssetID
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblState On tblState.State = tblAssetCustom.State
Inner Join tblADComputers On tblAssets.AssetID = tblADComputers.AssetID
Inner Join tblDiskdrives On tblAssets.AssetID = tblDiskdrives.AssetID
Order By tsysIPLocations.IPLocation