sqlsugar的sum的用法
2024-09-30 13:20:13
通过论坛的检索 查到三篇文章是关于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();
最新文章
- luogu[1135]奇怪的电梯
- 从setTimeout谈JavaScript运行机制
- 用php随机生成福彩双色球号码的2种方法
- SharePoint 2013 开发——SharePoint Designer 2013工作流
- sizeof的作用——解释类中与类之外static变量的情况
- Java 之文件IO编程 之写入
- 【转】iOS-Core-Animation-Advanced-Techniques(一)
- Delphi2010的RTTI增强
- 深入分析 Java 中的中文编码问题(1)
- synchronized关键字以及实例锁 类锁
- 用Html5/CSS3做Winform,一步一步教你搭建CefSharp开发环境(附JavaScript异步调用C#例子,及全部源代码)上
- #翻译#原文来自Database.System.Concepts(6th.Edition.2010)2.6Relational Operations,原文作者Abraham Silberschaz , Henry F. Korth , S. Sudarshan
- tmpfs使用探讨
- Delphi7连接MySql数据库-DBGrid控件显示数据
- Adobe Flash player ActiveX下载地址
- 软件在 win7 上运行时显示乱码
- 记mysql中时间相关的一个奇怪问题
- Django框架详细介绍---ORM相关操作
- Redis命令总结 (转)
- Makefile 隐含规则,模式规则,常见变量
热门文章
- Codeforces889C. Maximum Element
- HUST 1328 String
- MongoDB学习day05--MongDB开启权限验证,创建用户
- mybatis结合generator进行分页插件PluginAdapter开发
- Spring的AOP AspectJ切入点语法详解(转)
- 【深度探索c++对象模型】Function语义学之成员函数调用方式
- Codeforces Round #277 (Div. 2)---C. Palindrome Transformation (贪心)
- 分享一个检测用户是否用手机(Mobile)访问网站的 PHP 类
- 【Mongodb教程 第十课 】MongoDB 备份
- 同一个页面多个html、body标签