sqlsugar的sum的用法

摘要:
通过搜索论坛,我找到了三篇关于sum的文章http://www.codeisbug.com/Ask/9/4531http://www.codeisbug.com/Ask/14/4128文章1:我在2018年10月12日找到了一个解决方案。Sharevarquery=DB。FullClient。可查询<合同订单、合同>((co,cs)=>n

通过论坛的检索 查到三篇文章是关于sum的

http://www.codeisbug.com/Ask/9/4531

http://www.codeisbug.com/Ask/14/4128

文章1:
2018/10/12

我自己已经找到解决办法了,分享一下

   var query = DB.FullClient.Queryable<ContractOrders, Contracts>((co, cs) => new object[]{

                JoinType.Inner,co.ContractId==cs.Id

            })

            .WhereIF(!string.IsNullOrEmpty(customerId), (co, cs) => cs.CustomerId == customerId)

            .WhereIF(startDate.HasValue, (co, cs) => cs.ActivateDate >= startDate.Value)

            .WhereIF(endDate.HasValue, (co, cs) => cs.ActivateDate <= endDate.Value.AddDays(1))

            .WhereIF(status.HasValue, co => co.Status == status.Value)

            .Select((co, cs) => new ContractOrdersP<Contracts>

            {

                Code = co.Code,

                Id = co.Id,

                CreateTime = co.CreateTime,

                ContractId = co.ContractId,

                Remark = co.Remark,

                Status = co.Status,

                Contracts = cs,

                TotalPrice = SqlFunc.Subqueryable<ProductConfigs>()

               .Where(r => r.ContractOrderId == co.Id)

                .GroupBy(r => r.ContractOrderId)

                .Select(r => SqlFunc.AggregateSum(r.Quantity * r.DiscountPrice))

            });

用这个函数可以解决, SqlSugar作者 定义了AggregateSum 这种方法, 一般人还真不知道

 文章2:

4.x

.Max(it => it.id);

.Sum(it => it.id);

 官方文档的查询函数

 sqlsugar的sum的用法第1张

SqlFunc.Subqueryable子查询的写法

 //子查询的版本
                var list = db.Queryable<TC020_Purchase>()
                        .Select(a => new
                        {
                            guid = a.TC020_Guid,
                            compony = a.TC020_Company,
                            SignDate = a.TC020_SignDate,
                            ProjectTitle = a.TC020_ProjectTitle,
                            Signer = a.TC020_Signer,
                            ContractID = a.TC020_ContractID,
                            PaymentClaus = a.TC020_PaymentClause,
                            TotalCount = a.TC020_TotalAmount,

                            paid = SqlFunc.Subqueryable<TC022_PurchasePaymentRecord>()
                                .Where(b => b.TC020_Guid == a.TC020_Guid)
                                .Select(b => SqlFunc.AggregateSum(b.TC022_NotPaid.Value)).ToString(),

                            notpaid = SqlFunc.Subqueryable<TC022_PurchasePaymentRecord>()
                                .Where(b => b.TC020_Guid == a.TC020_Guid)
                                .Select(b => SqlFunc.AggregateSum(b.TC022_Paid.Value)).ToString()

                        }).ToList();

 Group By的写法

  //Group by 版本
                var group = db.Queryable<TC020_Purchase, TC022_PurchasePaymentRecord>((a, b) => new object[] {
                            JoinType.Left,a.TC020_Guid==b.TC020_Guid})

                        .GroupBy(a => new {
                            a.TC020_Guid,
                            a.TC020_Company,
                            a.TC020_SignDate,
                            a.TC020_ProjectTitle,
                            a.TC020_Signer,
                            a.TC020_ContractID,
                            a.TC020_PaymentClause,
                            a.TC020_SalesContractID,
                            a.TC020_TotalAmount
                        })
                        .Select((a,b)=> new {
                            paid=SqlFunc.AggregateSum(b.TC022_NotPaid.Value).ToString(),
                            notpaid= SqlFunc.AggregateSum(b.TC022_Paid.Value).ToString()

                        }).ToList();

免责声明:文章转载自《sqlsugar的sum的用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇多线程编程5种方法实现线程同步c#实现多线程代码例子下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ID生成算法(二)

上一篇文章介绍了一种用雪花算法生成GUID的方法,下面介绍里外一种生成GUID并导出为.txt文件的方法: 话不多说 show you the code ! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <m...

C#使用SqlSugar操作数据库导致的问题:托管调试助手“FatalExecutionEngineError”:运行时遇到了 错误。此错误的地址为。。。。

使用SqlSugar操作数据一定要注意: 对象的属性类型和数据库的字段类型要保持一致 对象的属性类型和数据库的字段类型要保持一致 对象的属性类型和数据库的字段类型要保持一致 本人基础太差了,这个小问题我从下午2点一致排错了23:00,终于解决了。 1,SqlSugar操作数据的代码 public class TighteningResultServi...

【转】SQL Server用GUID值来完成数据表行标识

    以下的文章主要描述的是SQL Server数据表中使用GUID值来作为行标识,GUID(Global unique identifier)全局唯一标识符,GUID(Global unique identifier)是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值。          GU...

ABP集成Quartz

在 usingAbp.AutoMapper; usingAbp.Modules; usingAbp.Quartz; usingAbp.Reflection.Extensions; usingAbp.Threading.BackgroundWorkers; usingEvaluationSystem.Authorization; usingEvaluatio...

java使用jdbc对sqlite 添加、删除、修改的操作

package com.jb.jubmis.Dao.DaoImpl; import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import...

静态文件cdn自解析生成相对路径

一、场景和目标:用户上传一个包含 index.html 的静态资源压缩包,资源内所有文件都是相互依赖的,不需要用户对内部文件内容做任何特殊处理,仅通过服务端逻辑处理达到用户访问 http://xxx.xxx/guid/index.html 时就可以得到这个资源的所有数据并正常浏览。 二、技术:nodejs、expressnpm 包:decompress、r...