You should be able to accomplish what's needed via SQL... something similar to the following on "database 1":
SELECT a.software_nm, a.collection_guid, b.software_cost
FROM BLAH a
LEFT OUTER JOIN otherdb.dbo.FOO b on
b.software_nm = a.software_nm
otherdb is "database 2". This assumes that database 2 can be contacted easily from database 1.
To do it via workflow:
1. Create a user-defined type consisting of a string/guid/decimal - floating point. This is done via an integration library.
2. Use an Add New Data Element to add an array of the previous.
3. Use a For Each Item in Collection component to loop through your 1st query results
4. Use an Add Item to Collection component to add an item to the array created in step 2, mapping in the values of the indexed item in the collection (might require some fenagling to get into the 2nd recordset)
Hope this helps.