sqlsugar执行提示“ORA-00979: 不是 GROUP BY 表达式” 返回

SqlSugar 沟通中
4 1435

通过Aop.OnLogExecuting监控生成的sql赋值到plsql中可以正常执行,但是sqlsugar执行提示:ORA-00979: 不是 GROUP BY 表达式

热忱回答4

  • fate sta fate sta VIP0
    2026/6/24

    可能是参数化引起的分组失败。  

    https://www.donet5.com/Home/Doc?typeId=2243

    看标题六

    0 回复
  • 没看懂需要怎么改,我的写法是:
    return await db.Queryable<JD_SKUDETAIL, JDPRICE_SUBMIT, JDSTORE_RECORD, JDSTORE_TYPE, USERINFO>((t1, t2, t3, t4, t5) => new JoinQueryInfos(

                                    JoinType.Inner, t1.THIRD_ORDER_LAST == t2.THIRD_ORDER,

                                    JoinType.Inner, t1.SKU == t3.SKU_WEB,

                                    JoinType.Inner, t3.BID.Substring(0, 2) == t4.BID,

                                    JoinType.Inner, t2.RDID == t5.RDID

                                    ))

                                .GroupBy((t1, t2, t3, t4, t5) => new

                                {

                                    OrganizationName = SqlFunc.Oracle_ToChar(t2.PRICE_TIME,"yyyy"), 

                                    DateName = t4.BNAME

                                })

                                .Where((t1, t2, t3, t4, t5) => t1.IS_PAY == "1" && t1.ISBATCH == "0" && t1.S_ID == sId && SqlFunc.Between(SqlFunc.Oracle_ToChar(t2.PRICE_TIME, "yyyy-mm-dd hh24:mi:ss"), startTime, endTime))

                                .Select((t1, t2, t3, t4, t5) => new CategoryStatisticalModel

                                {

                                    OrganizationName = SqlFunc.Oracle_ToChar(t2.PRICE_TIME, "yyyy"),

                                    DateName = t4.BNAME,

                                    OrderCount = SqlFunc.AggregateDistinctCount(t2.JDORDERID),

                                    BookQuantity = SqlFunc.AggregateCount(t1.SKU_ID),

                                    BookPrice = SqlFunc.AggregateSum(t1.MARKPRICE),

                                    PersonQuantity = SqlFunc.AggregateDistinctCount(t5.RDID)

                                })

                                .MergeTable()

                                .OrderByDescending(it => it.BookQuantity)

                                //.Select(it => new CategoryStatisticalModel

                                //{

                                //    DateName = it.DATENAME,

                                //    OrganizationName = it.DATAYEAR,

                                //    OrderCount = it.ORDERCOUNT,

                                //    BookQuantity = it.BOOKQUANTITY,

                                //    BookPrice = it.BOOKPRICE,

                                //    PersonQuantity = it.PERSONQUANTITY

                                //})

                                .ToListAsync();

    是要改成

    OrganizationName = SqlFunc.MappingColumn<string>(SqlFunc.Oracle_ToChar(t2.PRICE_TIME,"yyyy")), 

                                    DateName = SqlFunc.MappingColumn<string>(t4.BNAME)

    这样么?

    0 回复
  • fate sta fate sta VIP0
    2026/6/25

    GROUP

    OrganizationName =OrganizationName.ToString("yyyy")

    SELECT

    OrganizationName =OrganizationName.ToString("yyyy")



     

    0 回复
  • 验证了,可以

    0 回复