sqlsugar的sum的用法
通过论坛的检索 查到三篇文章是关于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的用法的更多相关文章
- 列表推导式和sum的用法
作者:杨航锋链接:https://www.zhihu.com/question/57470958/answer/153405326来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- mysql sum(if())用法
原表:id fenlei time1 分类1 201303162 分类2 201303163 分类3 201303174 ...
- python numpy sum函数用法
numpy.sum numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False)[source] Sum of array element ...
- MySql COUNT(),SUM()组合用法
需求:统计工作室表的数量,按创建时间分组 问题:按创建时间分组,如何将计数后的结果求和 解决:用COUNT(DISTINCT col_name)讲每行计数为1,再求和分组 SELECT DATE_FO ...
- sum() 求和用法
def func(*args): # sum = 0 # for el in args: # sum += el # return sum return sum(args) # sum() 求和 de ...
- mysql 中sum (if()) 用法
原表: id fenlei time 1 分类1 20130316 2 分类2 20130316 3 分类3 20130317 ...
- sum特殊用法
在python中,list可以存储False和True a = [False] python的sum除了可以加数字,还可以计算列表中False,True的个数,默认是计算False个数 >> ...
- 【Oracle】sum(..) over(..)用法分析
今天再看sql优化详解的时候,提到了一个sum(..) over(..) 于是自己实验并在网上找了相关的一些文章来看 下面创建一张表: create sequence xulie increment ...
- 1#Two Sum(qsort用法)
void*空类型指针,就好像暂时还没有确定类型,任何类型都可以赋给它.但是具体操作时一定要确定类型(如下,比较时先转Node) cmp返回一定是int,有-1,0,1三种,如果是1则第一个数要放在第二 ...
随机推荐
- 运行hadoop自带的计算圆周率异常
运行hadoop2 自带的圆周率计算方法时,报错,找了半天,原来是在配置hadoop临时目录时,没有给权限,找到配置的hadoop临时目录文件夹,修改权限即可 Application applicat ...
- Topcoder SRM 657DIV2
前言: 像我这样一直在DIV2的弱菜..不知道说什么了. A:一定判断有8个‘R’,每行 每列只有一个 B题:大概是 int E,int EM,int M,int MH,int H 然后EM可以给值 ...
- Markdown中插入图片技巧收集
在操作Markdown时图片应该是最头痛的一件事! 比如要发送一个md文件给对方,如果附带了图片时,那么就要一大堆文件包括图片发给对方等等,如果使用在线图片,那么这个服务器又是一大痛点,因为你不确定这 ...
- linux上安装启动elasticsearch-5.5.1完整步骤
linux上安装启动elasticsearch-5.5.1完整步骤 学习了:https://blog.csdn.net/hingcheung/article/details/77144574 http ...
- 【Mongodb教程 第五课 】MongoDB 删除集合
drop() 方法 MongoDB 的 db.collection.drop() 是用来从数据库中删除一个集合. 语法: drop() 命令的基本语法如下 db.COLLECTION_NAME.dro ...
- STM32通过调用库函数进行编程
1.调用库函数编程和直接配置寄存器编程的差别: 2.CMSIS标准: 3.STM32库函数的组织: 4.程序例举: 调用库函数实现通过USART发送数据(26个大写的英文字母) 首先:在主函数部分先要 ...
- 嵌入式开发之命令行---linux下的find文件查找命令与grep文件内容查找命令
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...
- [读书笔记]流畅的Python(Fluent Python)
<流畅的Python>这本书是图灵科技翻译出版的一本书,作者Luciano Ramalho. 作者从Python的特性角度出发,以Python的数据模型和特殊方法为主线,主要介绍了pyth ...
- vs2013发布网站提示 “未能将文件**复制到**”
原因:年久失修,原来在项目中的一些文件给删掉或移除了 解决方法:打开.csproj文件(记事本打开),把提示的文件给删除掉.
- TCP协议,UDP协议
帅爆太阳的男人 1,TCP协议 回环地址:127.0.0.1(所有电脑都这一个默认回环地址)每个计算机都有这么一个本机地址只能被本机识别,不会被其他机器识别(因为你用这个地址传内容他就传不出去) TC ...