SqlSugar数据查询去重

该代码段展示了如何利用SqlSugarHelper类进行数据库操作,包括左连接查询、条件过滤、按条件分组以及去重。查询涉及了Client_Info、Order_Detail和Basics_ShopInfo三张表,通过WhereIF方法动态添加过滤条件,并使用ToPageList进行分页处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SqlSugarHelper.StartSqlSugar(db =>
            {
                
                // db.Queryable<Order_Detail>().Take(1).PartitionBy(od => od.Carrier).ToList(); // 分组获取每组第一条
                // db.Queryable<Order_Detail>().OrderBy(od => od.Carrier, OrderByType.Desc).Take(1).PartitionBy(od => od.Carrier).ToList();

                int Count = 0;
                int Count = 0;
                P.StoreDeliveryLogInfo = db.Queryable<Client_Info,Order_Detail,Basics_ShopInfo>((ci,od,bci) => new object[] {
                    JoinType.Left,ci.ID == od.Client && ci.Valid == 1,
                    JoinType.Left,ci.Shop == bci.ID && ci.Valid == 1,
                })
                .Where((ci, od) => od.Valid == 1 && od.PlatForm == R.PlatForm)
                .WhereIF(R.Shop > 0, (ci, od, bci) => ci.Shop == R.Shop)
                .WhereIF(!String.IsNullOrEmpty(R.StartTime), (ci, od, bci) => od.CreateTime >= SqlFunc.ToDate(R.StartTime))
                .WhereIF(!String.IsNullOrEmpty(R.EndTime), (ci, od, bci) => od.CreateTime <= SqlFunc.ToDate(R.EndTime))
                .Select((ci, od, bci) => new OperationModel.ReturnSubsidiary.Report.StoreDeliveryLogInfo() { 
                    ID = ci.ID,
                    Shop = ci.Shop,
                    ShopName = bci.Name,
                    Client = ci.ID,
                    ClientName = ci.Name,
                    OrderId = od.ID,
                    CreateTime = MySqlFunc.ToDateTime(od.CreateTime, 120)
                })
                .Take(1).PartitionBy(ci => ci.ID) // 根据客户ID去重重复
                .ToPageList(R.Page, R.PageCount, ref Count);
                P.Count = Count;
            });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值