Although it is technically possible to return all the requested information into one report, as multiple tables (software, sql server data, ...) can return multiple rows, this would cause the report to return a lot of 'duplicate' information. In addition, this could also lower the performance and general usability of the report. In light of this, we've split the request into multiple reports, all of them based on the same base report, allowing you to combine them into one report if needed/required.
General SQLSelect
Top 1000000 tblAssets.AssetName,
tblComputersystem.Model,
tblAssets.IPAddress,
tsysIPLocations.IPLocation As Location,
tsysOS.OSname As OSCode,
tblOperatingsystem.Caption As 'Operating System',
tsysOS.OScode as 'Build Number',
CASE
WHEN tblAssetCustom.Model like '%virtual%' THEN 'Yes'
ELSE 'No'
END as IsVirtual
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblComputersystem On tblAssets.AssetID = tblComputersystem.AssetID
Inner Join tsysIPLocations On tsysIPLocations.LocationID = tblAssets.LocationID
Inner Join tblDomainroles On tblDomainroles.Domainrole = tblComputersystem.Domainrole
Inner Join tblOperatingsystem On tblOperatingsystem.AssetID = tblAssets.AssetID
Left Outer Join tsysOS On tsysOS.OScode = tblAssets.OScode
Where tblDomainroles.Domainrole > 1
Order By tblAssets.AssetName
Software informationSelect
Top 1000000 tblAssets.AssetName,
tblComputersystem.Model,
tblAssets.IPAddress,
tsysIPLocations.IPLocation As Location,
tsysOS.OSname As OSCode,
tblOperatingsystem.Caption As 'Operating System',
tsysOS.OScode as 'Build Number',
CASE
WHEN tblAssetCustom.Model like '%virtual%' THEN 'Yes'
ELSE 'No'
END as IsVirtual,
tblSoftwareUni.softwareName as Software,
tblSoftware.softwareVersion as Version,
tblSoftwareUni.SoftwarePublisher as Publisher
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblComputersystem On tblAssets.AssetID = tblComputersystem.AssetID
Inner Join tsysIPLocations On tsysIPLocations.LocationID = tblAssets.LocationID
Inner Join tblDomainroles On tblDomainroles.Domainrole = tblComputersystem.Domainrole
Inner Join tblOperatingsystem On tblOperatingsystem.AssetID = tblAssets.AssetID
Inner Join tblSoftware On tblSoftware.AssetID = tblAssets.AssetID
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID = tblSoftware.softID
Left Outer Join tsysOS On tsysOS.OScode = tblAssets.OScode
Where tblDomainroles.Domainrole > 1
Order By tblAssets.AssetName, tblSoftwareUni.softwareName
SQL server informationSelect
Top 1000000 tblAssets.AssetName,
tblComputersystem.Model,
tblAssets.IPAddress,
tsysIPLocations.IPLocation As Location,
tsysOS.OSname As OSCode,
tblOperatingsystem.Caption As 'Operating System',
tsysOS.OScode as 'Build Number',
CASE
WHEN tblAssetCustom.Model like '%virtual%' THEN 'Yes'
ELSE 'No'
END as IsVirtual,
tblSqlServers.serviceName,
tblSqlServers.displayVersion,
tblSqlDatabases.name as DBName
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblComputersystem On tblAssets.AssetID = tblComputersystem.AssetID
Inner Join tsysIPLocations On tsysIPLocations.LocationID = tblAssets.LocationID
Inner Join tblDomainroles On tblDomainroles.Domainrole = tblComputersystem.Domainrole
Inner Join tblOperatingsystem On tblOperatingsystem.AssetID = tblAssets.AssetID
Inner Join tblSqlServers On tblSqlServers.AssetID = tblAssets.AssetID
Inner Join tblSqlDatabases On tblSqlDatabases.sqlServerId = tblSqlServers.sqlServerId
Left Outer Join tsysOS On tsysOS.OScode = tblAssets.OScode
Where tblDomainroles.Domainrole > 1
Order By tblAssets.AssetName
Disk Drive InformationSelect
Top 1000000 tblAssets.AssetName,
tblComputersystem.Model,
tblAssets.IPAddress,
tsysIPLocations.IPLocation As Location,
tsysOS.OSname As OSCode,
tblOperatingsystem.Caption As 'Operating System',
tsysOS.OScode as 'Build Number',
CASE
WHEN tblAssetCustom.Model like '%virtual%' THEN 'Yes'
ELSE 'No'
END as IsVirtual,
tblDiskdrives.caption,
tblDiskdrives.size,
tblDiskdrives.Freespace
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tblComputersystem On tblAssets.AssetID = tblComputersystem.AssetID
Inner Join tsysIPLocations On tsysIPLocations.LocationID = tblAssets.LocationID
Inner Join tblDomainroles On tblDomainroles.Domainrole = tblComputersystem.Domainrole
Inner Join tblOperatingsystem On tblOperatingsystem.AssetID = tblAssets.AssetID
Inner Join tblDiskdrives On tblDiskdrives.AssetID = tblAssets.AssetID and tblDiskdrives.size is not null
Left Outer Join tsysOS On tsysOS.OScode = tblAssets.OScode
Where tblDomainroles.Domainrole > 1
Order By tblAssets.AssetName, tblDiskdrives.caption