I think you have this relationship between your three tables:
Invoice---<Share>---Fields (---< means "one to many")
I think a summary report that uses sub summary parts will do what you want. This approach should allow you to pull in database fields from a related parent table to use as a sub header for a group of records that all match to this same parent record such as a group of share records that all relate to a specific Invoice record.
Here's a tutorial that uses invoicing as model for learning how to setup a summary report:
See if that helps you out and feel free to post back with more questions if it doesn't