Your issue here is that Software Installed is a one-to-many field so you would get one row per item of software per device. Take that out of the equation and you will be fine.
So the question is really how to do the software bit and this is normally where I would start to ask questions of the person requesting the report. Do they really want every piece of software? What do they plan to do with this? What do 'they' mean by software? By this, do they want to know about every C++ Windows Update registered in Add/Remove Programs?
If they insist they want everything then perhaps you could get away with the Add/Remove Programs group, but you will still get a huge number of rows.
If you have Data Analytics then this would be even smaller because you would see only those software items that require licenses.
If this can't be narrowed down, then consider instead giving them access to the console or webconsole so that they can get access to make use of this query themselves, just make sure they have plenty of RAM because this will eventually kill their console.
If push comes to shove, in some cases I have built a spreadsheet that connects to the database and allows the user to choose a piece of software and then see which devices have that.
No perfect answer at this point I'm afraid but if the question can be clarified you have possibilities.
MarXtar Ltd/MarXtar Corporation
Ivanti One Development Partner
Try MarXtar State Management for Ivanti to Better Understand and Manage your Assets
Thank you for your reply.
We ended up creating the report by extracting data from the default installed software report and an export of direct inventory data into one CSV.