Linq不分组求多列的和
2024-09-04 15:07:42
我们需要写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 }));
}
}
最新文章
- Java NIO学习(一)
- dshow,Sample Grabber 从摄像头采集
- c#部分--- 一维数组放到集合中,在从集合中提取输出
- 《我是IT一只小小鸟》读后感
- 详解 Android 的 Activity 组件
- css 问题总结
- 错 &;#39;Cannot run program &;quot;/home/uv/IDE/adt/sdk/platform-tools/adb&;quot;: error=2, No such file or directory
- vue中的eventBus
- Maven 基本用法
- POJ 水题(刷题)进阶
- JS 单体内置对象
- android --------学习流程图
- Chromium网页Layer Tree创建过程分析
- 建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法
- 微服务系列(二):使用 API 网关构建微服务
- centos下运行python3.6+Django+mysql项目
- T-SQL with关键字
- OSX终端 命令行的一些基本操作
- 让Dreamweaver支持cshtml (MVC Razor环境)
- Scipy的应用