SELECT DISTINCT sp.Name, 'Software Product' AS [Type], spv.[Version], company.CompanyName, inst.ComputerName
FROM RM_ResourceSoftware_Product sp
JOIN Inv_Software_Product_State sps
ON sps._ResourceGuid = sp.Guid
LEFT JOIN Inv_Software_Product_Version spv
ON spv._ResourceGuid = sp.Guid
JOIN (SELECT ra.ParentResourceGuid AS ProductGuid, vc.Name AS ComputerName
FROM ResourceAssociation ra
JOIN Inv_InstalledSoftware iss
ON iss._SoftwareComponentGuid = ra.ChildResourceGuid
AND InstallFlag = 1
JOIN vComputer vc
ON vc.Guid = iss._ResourceGuid
AND vc.IsManaged = 1
WHERE ra.ResourceAssociationTypeGuid = '9D67B0C6-BEFF-4FCD-86C1-4A40028FE483') inst
ON inst.ProductGuid = sp.Guid
LEFT JOIN (SELECT ra.ParentResourceGuid AS ProductGuid, ci.Name AS CompanyName
FROM vRM_Company_Item ci
JOIN ResourceAssociation ra
ON ra.ChildResourceGuid = ci.Guid
AND ra.ResourceAssociationTypeGuid = 'D5C66D5A-7686-4CA2-B7C1-AC980576CE1D') company
ON company.ProductGuid = sp.Guid
WHERE sps.IsManaged = 2
UNION
SELECT DISTINCT sci.Name, 'Software Component' AS [Type], sc.[Version], company.CompanyName, inst.ComputerName
FROM vRM_Software_Component_Item sci
LEFT JOIN Inv_Software_Component_State scs
ON scs._ResourceGuid = sci.Guid
LEFT JOIN Inv_Software_Component sc
ON sc._ResourceGuid = sci.Guid
JOIN (SELECT iss._SoftwareComponentGuid AS scguid, vc.Name AS ComputerName
FROM Inv_InstalledSoftware iss
JOIN vComputer vc
ON vc.Guid = iss._ResourceGuid
AND vc.IsManaged = 1
WHERE iss.InstallFlag = 1) inst
ON inst.scguid = sci.Guid
LEFT JOIN (SELECT ra.ParentResourceGuid AS ComponentGuid, ci.Name AS CompanyName
FROM vRM_Company_Item ci
JOIN ResourceAssociation ra
ON ra.ChildResourceGuid = ci.Guid
AND ra.ResourceAssociationTypeGuid = '292DBD81-1526-423A-AE6D-F44EB46C5B16') company
ON company.ComponentGuid = sci.Guid
WHERE ISNULL(scs.IsManaged, 0) = 2
AND sci.Guid NOT IN (SELECT ChildResourceGuid FROM ResourceAssociation WHERE ResourceAssociationTypeGuid = '9D67B0C6-BEFF-4FCD-86C1-4A40028FE483')