diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs index 1d00254ed..b130d17db 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubGroupBy.cs @@ -44,10 +44,31 @@ namespace SqlSugar if ((argExp as LambdaExpression).Body is NewExpression) { type = ResolveExpressType.ArraySingle; } - var result = "GROUP BY " + SubTools.GetMethodValue(this.Context, argExp,type); + var result = "GROUP BY "; + if (this.Context.JoinIndex == 0) + { + result = result + SubTools.GetMethodValue(this.Context, argExp, type); + } + else + { + if (type == ResolveExpressType.ArraySingle) + { + type= ResolveExpressType.ArrayMultiple; + } + else if (type == ResolveExpressType.FieldSingle) + { + type = ResolveExpressType.FieldMultiple; + } + else if (type == ResolveExpressType.WhereSingle) + { + type = ResolveExpressType.WhereMultiple; + } + result = result + SubTools.GetMethodValueSubJoin(this.Context, argExp, type); + } result = result.TrimEnd(','); var selfParameterName = this.Context.GetTranslationColumnName((argExp as LambdaExpression).Parameters.First().Name) + UtilConstants.Dot; - result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); + if (this.Context.JoinIndex == 0) + result = result.Replace(selfParameterName, SubTools.GetSubReplace(this.Context)); return result; } }