I'm not sure about how you want to print the detail records. For the top level you say that you want to print all records, but does this imply that you want to print some of those same names in the following groups as well? Or are you just looking to print the subtotals for records that meet that criteria?
If you want to print the records (again) in the groups, then you need to create subreports for each group. You can't print the same record twice in the same report.
If you want to just keep track of the subtotals, then you can create a manual running formula which has three global variables and increment the appropriate formula depending upon the current record. Here is a bit of pseudo-code:
Global NumberVar G1;
Global NumberVar G2;
If {table. g1Field}= 1 AND {table.Name}="Ben" Then
G1 := G1 + 1;
If {table. g2Field}= 1 AND {table.Name}="Jerry" Then
G2 := G2 + 1;
Does that help at all?