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(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);
官方文档的查询函数
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-03-01 React VSCode插件