通过论坛的检索 查到三篇文章是关于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())

            .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:

.x

.Max(it => it.id);

.Sum(it => it.id);

官方文档的查询函数

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的用法的更多相关文章

  1. 列表推导式和sum的用法

    作者:杨航锋链接:https://www.zhihu.com/question/57470958/answer/153405326来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  2. mysql sum(if())用法

    原表:id    fenlei     time1      分类1      201303162      分类2      201303163      分类3      201303174    ...

  3. python numpy sum函数用法

    numpy.sum numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False)[source] Sum of array element ...

  4. MySql COUNT(),SUM()组合用法

    需求:统计工作室表的数量,按创建时间分组 问题:按创建时间分组,如何将计数后的结果求和 解决:用COUNT(DISTINCT col_name)讲每行计数为1,再求和分组 SELECT DATE_FO ...

  5. sum() 求和用法

    def func(*args): # sum = 0 # for el in args: # sum += el # return sum return sum(args) # sum() 求和 de ...

  6. mysql 中sum (if()) 用法

    原表: id    fenlei     time 1      分类1      20130316 2      分类2      20130316 3      分类3      20130317 ...

  7. sum特殊用法

    在python中,list可以存储False和True a = [False] python的sum除了可以加数字,还可以计算列表中False,True的个数,默认是计算False个数 >> ...

  8. 【Oracle】sum(..) over(..)用法分析

    今天再看sql优化详解的时候,提到了一个sum(..) over(..) 于是自己实验并在网上找了相关的一些文章来看 下面创建一张表: create sequence xulie increment ...

  9. 1#Two Sum(qsort用法)

    void*空类型指针,就好像暂时还没有确定类型,任何类型都可以赋给它.但是具体操作时一定要确定类型(如下,比较时先转Node) cmp返回一定是int,有-1,0,1三种,如果是1则第一个数要放在第二 ...

随机推荐

  1. 运行hadoop自带的计算圆周率异常

    运行hadoop2 自带的圆周率计算方法时,报错,找了半天,原来是在配置hadoop临时目录时,没有给权限,找到配置的hadoop临时目录文件夹,修改权限即可 Application applicat ...

  2. Topcoder SRM 657DIV2

    前言: 像我这样一直在DIV2的弱菜..不知道说什么了. A:一定判断有8个‘R’,每行 每列只有一个 B题:大概是  int E,int EM,int M,int MH,int H 然后EM可以给值 ...

  3. Markdown中插入图片技巧收集

    在操作Markdown时图片应该是最头痛的一件事! 比如要发送一个md文件给对方,如果附带了图片时,那么就要一大堆文件包括图片发给对方等等,如果使用在线图片,那么这个服务器又是一大痛点,因为你不确定这 ...

  4. linux上安装启动elasticsearch-5.5.1完整步骤

    linux上安装启动elasticsearch-5.5.1完整步骤 学习了:https://blog.csdn.net/hingcheung/article/details/77144574 http ...

  5. 【Mongodb教程 第五课 】MongoDB 删除集合

    drop() 方法 MongoDB 的 db.collection.drop() 是用来从数据库中删除一个集合. 语法: drop() 命令的基本语法如下 db.COLLECTION_NAME.dro ...

  6. STM32通过调用库函数进行编程

    1.调用库函数编程和直接配置寄存器编程的差别: 2.CMSIS标准: 3.STM32库函数的组织: 4.程序例举: 调用库函数实现通过USART发送数据(26个大写的英文字母) 首先:在主函数部分先要 ...

  7. 嵌入式开发之命令行---linux下的find文件查找命令与grep文件内容查找命令

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...

  8. [读书笔记]流畅的Python(Fluent Python)

    <流畅的Python>这本书是图灵科技翻译出版的一本书,作者Luciano Ramalho. 作者从Python的特性角度出发,以Python的数据模型和特殊方法为主线,主要介绍了pyth ...

  9. vs2013发布网站提示 “未能将文件**复制到**”

    原因:年久失修,原来在项目中的一些文件给删掉或移除了 解决方法:打开.csproj文件(记事本打开),把提示的文件给删除掉.

  10. TCP协议,UDP协议

    帅爆太阳的男人 1,TCP协议 回环地址:127.0.0.1(所有电脑都这一个默认回环地址)每个计算机都有这么一个本机地址只能被本机识别,不会被其他机器识别(因为你用这个地址传内容他就传不出去) TC ...