In the case that your someFlag
is not a variable dependent on the current element of the iterator, then I think you could make your code more readable by writing the following.
bool someFlag = false;
var result = someFlag ?
(from t in tableName group t by t.FieldA into g select g) :
(from t in tableName group t by t.FieldB into g select g);
Admittedly it's slightly longer, but its purpose is significantly more obvious in my opinion.
And to slightly simplify the code you just posted:
bool someFlag = false;
var result = from t in tableName
group t by (someFlag ? t.FieldA : t.FieldB) into g
select g;
...or am I missing something here?