.net 的linq分类汇总然后比较数据

       // 分组汇总后校验库存数量
            var listEntrySum = from p in dto.FEntity
                               group p by new { FStockOrgNumber = p.FStockOrgId.FNumber, FSotckNumber = p.FStockId.FNumber, FMaterialNumber = p.FMaterialID.FNumber } into g
                               select new
                               {
                                   FStockOrgNumber = g.Key.FStockOrgNumber,
                                   FSotckNumber = g.Key.FSotckNumber,
                                   FMaterialNumber = g.Key.FMaterialNumber,
                                   FQty = g.Sum(a => a.FQty)
                               };
            //分类汇总库存
            var listInventorySum = from p in kDInventoryDtos
                                   where p.FSTOCKSTATUSNUMBER.Equals("KCZT09_SYS") || p.FSTOCKSTATUSNUMBER.Equals("KCZT01_SYS")
                                   group p by new
                                   {
                                       FStockOrgNumber = p.FSTOCKORGNUMBER,
                                       FSotckNumber = p.FSTOCKNUMBER,
                                       FKeepNumber = p.FKEEPERNUMBER,
                                       FOwnerNumber = p.FOWNERNUMBER,
                                       FMaterialNumber = p.FMATERIALNUMBER
                                   } into g
                                   select new
                                   {
                                       FStockOrgNumber = g.Key.FStockOrgNumber,
                                       FOwnerNumber = g.Key.FOwnerNumber,
                                       FKeepNumber = g.Key.FKeepNumber,
                                       FSotckNumber = g.Key.FSotckNumber,
                          
                                       FMaterialNumber = g.Key.FMaterialNumber,
                                       FQty = g.Sum(a => a.FAVBQTY)
                                   };
            //比较数量
            var listResult = from a in listEntrySum
                             join b in listInventorySum on
                             new { FStockOrgNumber = a.FStockOrgNumber, FKeepNumber= a.FStockOrgNumber, FOwnerNumber = a.FStockOrgNumber, FSotckNumber = a.FSotckNumber, FMaterialNumber = a.FMaterialNumber }
                             equals new { FStockOrgNumber = b.FStockOrgNumber, FKeepNumber=b.FKeepNumber, FOwnerNumber=b.FOwnerNumber, FSotckNumber = b.FSotckNumber, FMaterialNumber = b.FMaterialNumber }
                             where a.FQty > b.FQty
                             select a;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值