当groupby字段使用了函数,则sugar会报错,提示xxx字段未包含在groupby中 返回
SqlSugar
处理中
7
204

悬赏:0 飞吻
var groupModel = new List<GroupByModel> { new GroupByModel { FieldName = ObjectFuncModel.Create("IsNull", "DJBH", "{string}:")} }; var selectModel = new List<SelectModel> { new SelectModel { FieldName = ObjectFuncModel.Create("IsNull", "DJBH", "{string}:"), AsName = "DJBH" } , new SelectModel { FieldName = ObjectFuncModel.Create("AggregateSum",ObjectFuncModel.Create("IsNull","SL","{int}:0")), AsName = "SL" } }; var dtdjbh = _db.Queryable<dynamic>().AS("XXXXXX").GroupBy(groupModel).Select(selectModel).ToDataTable(); 错误:Microsoft.Data.SqlClient.SqlException:“选择列表中的列 'XXXXXX.DJBH' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 但是生成出来的sql在数据库中,是可以执行的。 sql: [Sql]:SELECT ISNULL([DJBH],@p0_1011) AS [DJBH] , SUM(ISNULL([SL],@p0_1022)) AS [SL] FROM [XXXXXX] GROUP BY ISNULL([DJBH],@p0_1000) [Pars]: [Name]:@p0_1000 [Value]: [Type]:String [Name]:@p0_1011 [Value]: [Type]:String [Name]:@p0_1022 [Value]:0 [Type]:Int32 数据库是sqlserver
热忱回答(7)
-
fate sta VIP0
1周前@p0_1022
@p0_1000
因为2个参数不一样导致group不认。。我想想解决方案
0 回复 -
cr7 VIP0
1周前@fate sta:
0 回复 -
fate sta VIP0
1周前@cr7:
var dtdjbh = db.Queryable<dynamic>().AS("XXXXXX").GroupBy(groupModel).Select(selectModel).ToSqlString(); db.Ado.ExecuteCommand(dtdjbh);
groupby如果有参数就直接去参数化用SQL执行吧
0 回复 -
cr7 VIP0
1周前@fate sta:没有别的办法了吧,因为我是多个查询UnionAll,是不是可以将多个query都转成sql,拼接一起最后一起执行?
0 回复 -
fate sta VIP0
1周前我想办法支持一下吧
0 回复 -
cr7 VIP0
1周前@fate sta:大佬V5
0 回复 -
cr7 VIP0
1周前@fate sta:麻烦问下更新包多久能出来?等着用
0 回复