分组查询里面带一个子查询报错 返回

SqlSugar 沟通中
4 98

image.png

报出的错误

Expression #9 of SELECT list is not in GROUP BY clause and contains nonaggregated column '20000.kc.kcid' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

热忱回答4

  • 发文本,图片我没办法给你改

    0 回复
  •  Expression<Func<wms_wc_kb_stock, wms_wc_kc_stock, JoinQueryInfos>> joinExpression = (kb, kc) => new JoinQueryInfos(JoinType.Inner, kb.card_no == kc.card_no);


     Expression<Func<wms_wc_kb_stock, wms_wc_kc_stock, bool>>? exp = MorelinkExpressionable.Create<wms_wc_kb_stock, wms_wc_kc_stock>()

       .AndIF(!arg.card_no.IsNullOrEmpty(), (kb, kc) => kb.card_no == arg.card_no)

       .AndIF(!arg.track_no.IsNullOrEmpty(), (kb, kc) => kb.track_no == arg.track_no)

       .AndIF(!arg.d_code.IsNullOrEmpty(), (kb, kc) => kb.d_code == arg.d_code)

       .AndIF(!arg.ps_type.IsNullOrEmpty(), (kb, kc) => kb.ps_type == arg.ps_type)

       .AndIF(arg.card_nos !=null && arg.card_nos.Count > 0, (kb, kc) => !arg.card_nos.Contains(kb.card_no))

       .And((kb, kc) => kb.ckid == arg.ckid && SqlFunc.IsNull(kb.bol_no, "") == "" && kb.kc_state == 0)

       .ToExpression();


     arg.sorts.AddIf(arg.sorts.SortIsNullOrEmpty(), new sortBase() { field = "rk_time", sort = "asc" });

     var list = await _wms_wc_kb_stock_rep.GetListPageAsync(joinExpression,(kb,kc)=>new out_wms_wc_kb_stock_bol() { card_no=kb.card_no,

         track_no=SqlFunc.AggregateMax(kb.track_no),

         d_code= SqlFunc.AggregateMax(kb.d_code),

         addr1= SqlFunc.AggregateMax(kb.addr1),

         ps_type= SqlFunc.AggregateMax(kb.ps_type),

         remark= SqlFunc.AggregateMax(kb.remark),

         kw_name= SqlFunc.AggregateMax(kb.kw_name),

         kb_num=1,

         strmark= SqlFunc.Subqueryable<wms_wc_kc_stock>().Where(z => z.kcid == kc.kcid && !SqlFunc.IsNullOrEmpty(z.mark)).SelectStringJoin(z => z.mark, ","),

         rk_time = SqlFunc.AggregateMax(kb.rk_time)

     }, exp, (kb, kc) =>kb.card_no, arg.pageindex, arg.pagesize, arg.sorts, cancellationToken);


    0 回复
  • @fate sta

    Expression<Func<wms_wc_kb_stock, wms_wc_kc_stock, JoinQueryInfos>> joinExpression = (kb, kc) => new JoinQueryInfos(JoinType.Inner, kb.card_no == kc.card_no);


     Expression<Func<wms_wc_kb_stock, wms_wc_kc_stock, bool>>? exp = MorelinkExpressionable.Create<wms_wc_kb_stock, wms_wc_kc_stock>()

       .AndIF(!arg.card_no.IsNullOrEmpty(), (kb, kc) => kb.card_no == arg.card_no)

       .AndIF(!arg.track_no.IsNullOrEmpty(), (kb, kc) => kb.track_no == arg.track_no)

       .AndIF(!arg.d_code.IsNullOrEmpty(), (kb, kc) => kb.d_code == arg.d_code)

       .AndIF(!arg.ps_type.IsNullOrEmpty(), (kb, kc) => kb.ps_type == arg.ps_type)

       .AndIF(arg.card_nos !=null && arg.card_nos.Count > 0, (kb, kc) => !arg.card_nos.Contains(kb.card_no))

       .And((kb, kc) => kb.ckid == arg.ckid && SqlFunc.IsNull(kb.bol_no, "") == "" && kb.kc_state == 0)

       .ToExpression();


     arg.sorts.AddIf(arg.sorts.SortIsNullOrEmpty(), new sortBase() { field = "rk_time", sort = "asc" });

     var list = await _wms_wc_kb_stock_rep.GetListPageAsync(joinExpression,(kb,kc)=>new out_wms_wc_kb_stock_bol() { card_no=kb.card_no,

         track_no=SqlFunc.AggregateMax(kb.track_no),

         d_code= SqlFunc.AggregateMax(kb.d_code),

         addr1= SqlFunc.AggregateMax(kb.addr1),

         ps_type= SqlFunc.AggregateMax(kb.ps_type),

         remark= SqlFunc.AggregateMax(kb.remark),

         kw_name= SqlFunc.AggregateMax(kb.kw_name),

         kb_num=1,

         strmark= SqlFunc.Subqueryable<wms_wc_kc_stock>().Where(z => z.kcid == kc.kcid && !SqlFunc.IsNullOrEmpty(z.mark)).SelectStringJoin(z => z.mark, ","),

         rk_time = SqlFunc.AggregateMax(kb.rk_time)

     }, exp, (kb, kc) =>kb.card_no, arg.pageindex, arg.pagesize, arg.sorts, cancellationToken);


    0 回复
  •  var list = await _wms_wc_kb_stock_rep.GetListPageAsync(joinExpression,(kb,kc)=>new out_wms_wc_kb_stock_bol() { card_no=kb.card_no,

         track_no=SqlFunc.AggregateMax(kb.track_no),

         d_code= SqlFunc.AggregateMax(kb.d_code),

         addr1= SqlFunc.AggregateMax(kb.addr1),

         ps_type= SqlFunc.AggregateMax(kb.ps_type),

         remark= SqlFunc.AggregateMax(kb.remark),

         kw_name= SqlFunc.AggregateMax(kb.kw_name),

         kb_num=1,

         strmark= SqlFunc.Subqueryable<wms_wc_kc_stock>().Where(z => z.kcid ==SqlFunc.AggregateMax( kc.kcid) && !SqlFunc.IsNullOrEmpty(z.mark)).SelectStringJoin(z => z.mark, ","),

         rk_time = SqlFunc.AggregateMax(kb.rk_time)

     }, exp, (kb, kc) =>kb.card_no, arg.pageindex, arg.pagesize, arg.sorts, cancellationToken);


    0 回复