We have been running into low disk space on our appliance and I decided to go through and clean up our software titles. We make heavy use of managed installations in our environment and that means uploading a lot of installers. We don't have a good process in place for going back and deleting old versions of software when we upgrade the MI to the latest version and I'm starting to put that process in place. The first part is creating a report of software titles that don't have a managed install associated with them. This basic report identifies them:
SELECT ID, DISPLAY_NAME, FILE_SIZE,
( SELECT COUNT(MI.ID) FROM MI WHERE MI.SOFTWARE_ID = SOFTWARE.ID) as MICOUNT
FROM SOFTWARE
WHERE SOFTWARE.FILE_SIZE > 0
HAVING MICOUNT = 0
ORDER BY DISPLAY_NAME
This report can be scheduled to run on a recurring basis to remind someone to clean up the software inventory.

You can also create a smart label to identify software titles that can have their attachment deleted. This can make the process much quicker.
  1. In the admin console browse to Inventory, Software
  2. Click Smart Label under the search box
  3. For the search criteria choose File Size > 0
  4. Create a name for the label, I called mine File Cleanup
  5. Click Save
  6. Once the label is created click on the link in the notification to view smart labels or browse to Home, Label Management, Smart Labels
  7. Find the label that you just created
  8. Replace the SQL with the following:
    SELECT DISPLAY_NAME, PUBLISHER, SOFTWARE.ID as TOPIC_ID, (SELECT COUNT(MI.ID) FROM MI WHERE MI.SOFTWARE_ID = SOFTWARE.ID) as MICOUNT FROM SOFTWARE  WHERE ((FILE_SIZE > '0'))  
    HAVING MICOUNT = 0
  9. Save the label
When you go back to the software inventory you will now be able to filter the results using the new label.