我们需要写Linq查询语句,使用let来创建一个新的变量

Let 关键字

“let”关键字在查询语法中很有用。它会投影一个新的范围变量,允许重新使用表达式并使查询更具可读性。

例如: 这里需要写,两遍   let可以看成在查询语法里面申明一个变量。

方法:

/// <summary>
/// 监控数据
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<IHttpActionResult> JkDataAsync()
{
try
{
int day = DateTime.Now.Day;
IList<RbBgdata> result = await dbOracle.RbBgdatas.AsQueryable().Where(x => x.Createtime.Value.Day == day).ToListAsync();
var ii = (from x in result
let Partakenum = result.Sum(ee => ee.Partakenum)
let Unpartakenum = result.Sum(ee => ee.Unpartakenum)
let Qualifiednum = result.Sum(ee => ee.Qualifiednum)
let Unqualifiednum = result.Sum(ee => ee.Unqualifiednum)
select new
{
PartakenSum = Partakenum, //参与用户
UnpartakeSum = Unpartakenum, //总用户
QualifiedSum = Qualifiednum, //合格数
UnqualifiedSum = Unqualifiednum //不合格数
}
).FirstOrDefault(); object obj = new
{
PartakeNum = ii.PartakenSum,
UnPartakeNum = ii.UnpartakeSum - ii.PartakenSum,
TotalPartakNum = ii.UnpartakeSum,
Cyl = (ii.UnpartakeSum == ? : Math.Round((ii.PartakenSum.Value * 1.0 / ii.UnpartakeSum.Value) * , )) + "%",
QualifiedNum = ii.QualifiedSum,//合格数
UnQualifiedNum = ii.UnqualifiedSum,
Zql = ((ii.QualifiedSum + ii.UnqualifiedSum) == ? : Math.Round((ii.QualifiedSum.Value * 1.0 / (ii.QualifiedSum.Value + ii.UnqualifiedSum.Value)) * , )) + "%"
};
return await Task.FromResult(Ok(new { errcode = , data = obj }));
}
catch (Exception ex)
{
return await Task.FromResult(Ok(new { errcode = , errmsg = ex.Message }));
}
}

Linq不分组求多列的和的更多相关文章

  1. pandas对时间列分组求diff遇到的问题

    例子: df = pd.DataFrame() df['A'] = [1, 1, 2] df['B'] = [datetime.date(2018, 1, 2), datetime.date(2018 ...

  2. Hive - - 分组求最大,最小(加行键)

    Hive - - 分组求最大,最小(加行键) 数据: 1325927 陕西 汉中 084 08491325928 陕西 汉中 084 08491325930 陕西 延安 084 08421325931 ...

  3. 工作总结 EF GroupBy() Select() Select() 中 Count() 分组 求总

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. sum_series() 求一列数的指定个数的数和(5个数字的和)

    #include <stdio.h> #include <stdarg.h> /*用sum_series() 求一列数的指定个数的数和(5个数字的和)*/ double sum ...

  5. POJ-1180 Batch Scheduling (分组求最优值+斜率优化)

    题目大意:有n个任务,已知做每件任务所需的时间,并且每件任务都对应一个系数fi.现在,要将这n个任务分成若干个连续的组,每分成一个组的代价是完成这组任务所需的总时间加上一个常数S后再乘以这个区间的系数 ...

  6. 【hive】分组求排名

    分组求排名 相信好多使用Mysql的用户一定对分组求排名的需求感到发怵. 但是在hive或者oracle来说就能简单实现. 采用窗口函数:rank() over() / row_number() ov ...

  7. 第3节 mapreduce高级:8、9、自定义分区实现分组求取top1

    自定义GroupingComparator求取topN GroupingComparator是mapreduce当中reduce端的一个功能组件,主要的作用是决定哪些数据作为一组,调用一次reduce ...

  8. 第2节 网站点击流项目(下):3、流量统计分析,分组求topN

    四. 模块开发----统计分析 select * from ods_weblog_detail limit 2;+--------------------------+---------------- ...

  9. Java lambda 分组后多列求和

    主要思路是reducing,可以像sql一样分组后多列求和处理成新对象等: select code,max(name)as name,sum(chengJi)as chengJi,sum(age)as ...

随机推荐

  1. flask_sqlalchemy filter 和filter_by的区别

    1. filter需要通过类名.属性名的方式,类名.属性名==值.filter_by 直接使用属性名=值,可以看源码filter_by需要传一个 **kwargs 2. filter支持> &l ...

  2. thinkphp传送文章id值

  3. 一个对inner jion ...on 的sql多表联合查询的练习

    create database practiceSql; use practiceSql; -- create table student( `id` bigint not null auto_inc ...

  4. java.io.FileNotFoundException

    1. 概述 上传图片到 o:/mmfiles_2017/39973/25444/333.jpg目录下 目录不存在会报标题中的错误 必须先创建目录 2. 方法 File filePath = new F ...

  5. PowerDesigner设置所有int主键自增脚本

    '*****************************************************************************dim model 'current mod ...

  6. sauvola二值化算法研究

    sauvola二值化算法研究   sauvola是一种考虑局部均值亮度的图像二值化方法, 以局部均值为基准在根据标准差做些微调.算法实现上一般用积分图方法 来实现.这个方法能很好的解决全局阈值方法的短 ...

  7. 项目经验:GIS<MapWinGIS>建模第一天

    随便记录下项目的进展情况: GIS平台系统,实现整个供水系统的协调与统一.系统以管网为基础依据,建立可实现供水管网规划设计.输配管理.图档管理.抢修辅助决策及综合查询.统计等功能. 本文档的预期读者是 ...

  8. 【Python】内置方法pop

    此时 a,b 指向的地址所存的内容均被更改

  9. JavaScript中的XMLHttpRequest与WebAPI

    JavaScript中的XMLHttpRequest与WebAPI它仅仅是一种客户端与服务端的关系.JavaScript中的XMLHttpRequest负责在客户端发起请求,而Web API负责在服务 ...

  10. 关于H5的自定义属性data-*

    data-* 是H5的新属性,用来让开发者对标签添加自定义属性的. 其读写方式有如下几种: 如果是 data-abc 的格式,则采用正常格式 abc 来读写该属性值 <div id=" ...