I take it there is no status on the incident to say completed. If not, there isn't a join that is going to work as you want. Without getting the data via a view or a strored proc, the best you can do is leave the current filter in place, then group by incident. Create a subreport that checks if all tasks are completed and returns a value via a shared variable. you can run the subreport in GHa and if not all tasks are completed suppress GHb and Details.
At least that is the plan of attack that I would use. I know it touches on alot of ideas/techniques, but it is the best method that I can think of.
HTH