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

最新文章

  1. luogu[1135]奇怪的电梯
  2. 从setTimeout谈JavaScript运行机制
  3. 用php随机生成福彩双色球号码的2种方法
  4. SharePoint 2013 开发——SharePoint Designer 2013工作流
  5. sizeof的作用——解释类中与类之外static变量的情况
  6. Java 之文件IO编程 之写入
  7. 【转】iOS-Core-Animation-Advanced-Techniques(一)
  8. Delphi2010的RTTI增强
  9. 深入分析 Java 中的中文编码问题(1)
  10. synchronized关键字以及实例锁 类锁
  11. 用Html5/CSS3做Winform,一步一步教你搭建CefSharp开发环境(附JavaScript异步调用C#例子,及全部源代码)上
  12. #翻译#原文来自Database.System.Concepts(6th.Edition.2010)2.6Relational Operations,原文作者Abraham Silberschaz , Henry F. Korth , S. Sudarshan
  13. tmpfs使用探讨
  14. Delphi7连接MySql数据库-DBGrid控件显示数据
  15. Adobe Flash player ActiveX下载地址
  16. 软件在 win7 上运行时显示乱码
  17. 记mysql中时间相关的一个奇怪问题
  18. Django框架详细介绍---ORM相关操作
  19. Redis命令总结 (转)
  20. Makefile 隐含规则,模式规则,常见变量

热门文章

  1. Codeforces889C. Maximum Element
  2. HUST 1328 String
  3. MongoDB学习day05--MongDB开启权限验证,创建用户
  4. mybatis结合generator进行分页插件PluginAdapter开发
  5. Spring的AOP AspectJ切入点语法详解(转)
  6. 【深度探索c++对象模型】Function语义学之成员函数调用方式
  7. Codeforces Round #277 (Div. 2)---C. Palindrome Transformation (贪心)
  8. 分享一个检测用户是否用手机(Mobile)访问网站的 PHP 类
  9. 【Mongodb教程 第十课 】MongoDB 备份
  10. 同一个页面多个html、body标签