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则第一个数要放在第二 ...
随机推荐
- Swift--方法(函数)
方法是执行特殊任务的自包含代码块.你可以给方法名字来表示它的功能,而且在需要的时候调用这个名字的方法来执行它的任务. Swift方法的语法表达很灵活,从类似c的没有参数名的方法到oc复杂的带有名字和参 ...
- app后端搜索入门
现在人们的网络生活已经离不开搜索了,遇到不懂的问题,想知道的事情,搜索一下,就知道答案. 在app中,最常见的搜索情景就是搜索用户.只有几百,几千的用户量时,可以直接用用like这样的模糊查询,但是, ...
- UVA 861 组合数学 递推
题目链接 https://vjudge.net/problem/UVA-861 题意: 一个国际象棋棋盘,‘象’会攻击自己所在位置对角线上的棋子.问n*n的棋盘 摆放k个互相不攻击的 '象' 有多少种 ...
- POJ 2502 【思维是朴素的最短路 卡输入和建图】
题意: 给出两个坐标,分别是小明家和小明学校的坐标. 给出多条地铁线,给出每站的坐标,已知地铁是双向的,每条线以-1 -1结尾. 给出地铁速度,步行速度. 地铁线可看成是顺次连接的线段. 求小明从家到 ...
- zookeeper原理浅析(二)
参考:https://www.cnblogs.com/leocook/p/zk_1.html 代码:https://github.com/littlecarzz/zookeeper 1. 数据模型 1 ...
- ABP每次生成前都执行bundle设置
ABP项目每次编译mvc项目时都会执行bundle,比较耗时. 可以在项目文件(*.csproj)中发现设置了每前生成前执行的命令 <Target Name="PreBuild&quo ...
- [转]Wireshark抓包工具--TCP数据包seq ack等解读
原文: http://blog.csdn.net/wang7dao/article/details/16805337/ ---------------------------------------- ...
- Zookeeper中的FastLeaderElection选举算法简述
Zookeeper是一个开源的分布式应用协调项目, 当中为了保证各节点的协同工作,Zookeeper在工作时须要有一个Leader. 而Leader是怎样被选举出来的?Zookeep中使用的缺省算法称 ...
- 解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 12: ordinal not in range(128)的编码问题
当我在运行一个基于scrapy的爬虫时出现UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 12: ordina ...
- C++实现KMP模式匹配算法
#include<iostream> #include<string> #include<vector> using namespace std; void Nex ...