C# 中的 Group By Sum Linq to SQL

2024-01-15

确实坚持使用 Linq to SQL 分组和求和,到处搜索,但我还不够了解,无法将其他解决方案应用到我自己的解决方案中。

我的数据库中有一个名为 view_ProjectTimeSummary 的视图,它具有以下字段:

string_UserDescription
string_ProjectDescription
datetime_Date
double_Hours

我有一个方法,它接受起始日期和起始日期参数,并首先创建此 List:

List<view_UserTimeSummary> view_UserTimeSummaryToReturn = 
             (from linqtable_UserTimeSummaryView
              in datacontext_UserTimeSummary.GetTable<view_UserTimeSummary>()
              where linqtable_UserTimeSummaryView.datetime_Week <= datetime_To
              && linqtable_UserTimeSummaryView.datetime_Week >= datetime_From
              select linqtable_UserTimeSummaryView).ToList<view_UserTimeSummary>();

在返回列表(用作 datagridview 的数据源)之前,我使用同名参数过滤 string_UserDescription 字段:

if (string_UserDescription != "")
        {
            view_UserTimeSummaryToReturn = 
                        (from c in view_UserTimeSummaryToReturn
                         where c.string_UserDescription == string_UserDescription
                         select c).ToList<view_UserTimeSummary>();
        }

return view_UserTimeSummaryToReturn;

如何操作生成的 List 以显示sum该用户和项目的 double_Hours 字段在“开始”和“结束”日期参数之间的值(而不是每个日期的单独条目)?

例如具有以下字段的 List:

string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate

我是否正确,这意味着我必须返回不同类型的 List (因为它的字段比 view_UserTimeSummary 少)?

我已经读过,为了得到总和,它类似于“group / by / into b”,但通过查看其他解决方案不明白这种语法是如何工作的......有人可以帮助我吗?

谢谢 史蒂夫


首先定义一个类来保存结果:

public class GroupedRow
{
  public string UserDescription {get;set;}
  public string ProjectDescription {get;set;}
  public double SumOfHoursBetweenToAndFromDate {get;set;}
}

由于您已经应用了过滤,因此唯一要做的就是分组。

List<GroupedRow> result =
(
  from row in source
  group row by new { row.UserDescription, row.ProjectDescription } into g
  select new GroupedRow()
  {
    UserDescription = g.Key.UserDescription,
    ProjectDescription = g.Key.ProjectDescription,
    SumOfHoursBetweenToAndFromDate = g.Sum(x => x.Hours)
  }
).ToList();

(或其他语法)

List<GroupedRow> result = source
  .GroupBy(row => new {row.UserDescription, row.ProjectDescription })
  .Select(g => new GroupedRow()
  {
    UserDescription = g.Key.UserDescription,
    ProjectDescription = g.Key.ProjectDescription,
    SumOfHoursBetweenToAndFromDate = g.Sum(x => x.Hours)
  })
  .ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的 Group By Sum Linq to SQL 的相关文章

  • 如何对多行的一列值求和?

    我有这个表 我想添加几行的 change 列的值 或者更准确地说 从 ne 值为零的行到 ne 值为零的下一行 不是第二个本身 任何答案将不胜感激 rn date ne change 0 2008 12 07 0 10330848398 1
  • 分页错误:“跳过”方法仅支持 LINQ to Entities 中的排序输入。必须在方法“Skip”之前调用方法“OrderBy”

    我正在索引页上的 MVC 中进行分页 在这一行我收到错误 return View employee ToPagedList Page 1 3 这是索引方法 public ActionResult Index string searchBy
  • 为什么 EF 5.0 在编译为 sql 时不支持此 EF 4.x LINQ 语法?

    我有一些代码最近从 EF 4 2 升级到 EF 5 0 实际上是 EF 4 4 因为我在 Net 4 0 上运行 我发现我必须更改查询的语法 我很好奇为什么 让我从问题开始 我有一个由客户端定期填充的事件日志表 对于每个事件日志 都会在报告
  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • TSQL - 生成文字浮点值

    我理解比较浮点数时遇到的许多问题 并对它们在这种情况下的使用感到遗憾 但我不是表格作者 只有一个小障碍需要克服 有人决定使用浮点数 就像您期望使用 GUID 一样 我需要检索具有特定浮点值的所有记录 sp help MyTable Colu
  • 在 PostgreSql 中计算百分比

    例如我有一个这样的表 string adm A 2 A 1 B 2 A 1 C 1 A 2 通过 SQL 查询 我想要这样的结果 string perc adm A 50 B 100 C 0 我想要每个字符串中数字 2 出现的百分比 我可以
  • MySQL:如何获取每个分组的x个结果数[重复]

    这个问题在这里已经有答案了 可能的重复 mysql 在 GROUP BY 中使用 LIMIT 来获取每组 N 个结果 https stackoverflow com questions 2129693 mysql using limit w
  • LINQ options.loadwith 问题

    我正在编写一个基于标签的 ASP net 系统 使用以下数据库方案 Topic
  • 在 MS Access SQL 查询中从正常日期转换为 unix 纪元日期

    我正在尝试编写一个通过 ODBC 连接到 MySQL 数据库的 MS Access 2007 连接的查询 一切工作正常 查询执行我想要的操作 我挂断的部分是我一直在询问用户 unix 纪元时间 而不是常规日期 我查找了 MS Access
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • 包含列和行总计的 SQL 数据透视表

    我正在尝试将行和列总计添加到该数据透视表中 create table test4 city nvarchar 10 race nvarchar 30 sex nvarchar 10 age int insert into test4 val
  • Snowflake 中的动态 SQL

    当我在雪花中运行动态 SQL 时 遇到以下错误 未完成对 SQL MAIN 的分配 因为值超出了变量的大小限制 它的大小是263 限制为 256 内部存储大小以字节为单位 这是代码 SET v G 1 SET v G1 v G VARCHA
  • 使用 MVC 5 和实体框架的 jQuery 数据表

    我需要一些关于在控制器中放入什么内容的指导 以便我可以对 jQuery 数据表使用服务器端处理 我正在使用 MVC 5 和实体框架 示例位于 http datatablesmvc codeplex com documentation htt
  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 使用 LINQ 通过一个属性比较两个列表

    假设我有以下内容 class Widget1 public int TypeID get set public string Color get set class Widget2 public int TypeID get set pub
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不

随机推荐

  • 使用 python w/rest api 与 Azure Key Vault 交互

    我对使用最近发布的新服务在 Azure 中进行秘密管理非常感兴趣 我找到了一些示例指南 介绍了如何通过 powershell cmdlet 和 C 与 Key Vault 进行交互 但是还没有找到太多关于开始使用其余 API 的信息 我特别
  • 类型“JavaCompile”属性“options.compilerArgumentProviders.apt$0.name”缺少输入或输出注释。升级到Gradle 7后出现错误

    升级到 Gradle 7 0 并进行构建后 我遇到以下失败 gt Task compileJava FAILED FAILURE Build failed with an exception What went wrong Some pro
  • 调整火狐浏览器中输入类型=“文件”浏览按钮的大小?

    无论如何 是否可以使用CSS或JS来调整firefox中输入类型 文件 浏览按钮的大小 我知道您无法更改按钮的文本 但我需要做的就是使该按钮在 Firefox 中更宽 所以使用 moz css 规则将是完美的 出于安全原因 文件输入按钮的样
  • 在Keras中编译模型后如何动态冻结权重?

    我想在 Keras 中训练 GAN 我的最终目标是开始 但我从最简单的目标开始 理解如何冷冻在这里 适当的权重是必要的 这就是我正在努力解决的问题 在生成器训练期间 鉴别器权重可能不会更新 我想freeze and unfreeze判别器交
  • 使用 libcurl 链接程序时出现未解析的符号

    我知道这是编程问题 但我只是很沮丧地试图找出我做错了什么 我使用的是 Visual Studio 2010 并遵循此处的所有步骤 http curl haxx se libcurl c visual studio pdf http curl
  • .NET 基准测试框架

    是否有用于编写微基准的 NET 框架 例如Japex https japex dev java net or this http ellipticgroup com html benchmarkingArticle html 两者都适用于J
  • Android GCM PHP 未经授权 401 错误

    最近我的 GCM 推送消息通知不再起作用 我没有更改任何内容 在我的 Google API 控制台中 如果白名单 IP 地址 我已经注册了我的专用服务器的 IPV6 但是当我尝试访问 GCM 服务时 我总是收到错误 未经授权 错误401 也
  • 有哪些例子可以说明在程序中使用括号会降低可读性?

    我一直认为括号提高了可读性 但在我的教科书中有这样一句话 使用括号会极大地降低程序的可读性 有人有例子吗 我可以找到很多反例lack括号降低了可读性 但我能想到的作者可能的意思的唯一例子是这样的 if a null a isSomethin
  • 如何在(Android)机顶盒上的 Chrome 中显示 FPS 仪表?

    我想在机顶盒 android 上的 Chrome 中使用 HTML5 标签显示视频的 FPS 在 Chrome 29 中 我可以使用chrome flags show fps counter使用 FPS 计 但是最新版本 50 我再也找不到
  • 安卓同屏分辨率

    在Android中 我需要相同的分辨率Default WVGA800 HVGA QVGA所有模拟器都意味着模拟器的大小现在不重要我有这个xml file我需要固定底部标签栏的大小 我该怎么办 现在我面临的问题是 我必须在底部为标签栏留出空间
  • 在 ASP.NET MVC 3 中使用 HtmlHelper 获取当前视图的 URL

    我问类似的问题here https stackoverflow com questions 10069687 use htmlhelper to get action in beginform method of asp net mvc 3
  • 当协方差矩阵为零时,如何在 R 中使用 prcomp () 函数?

    使用时princomp 在R函数中 遇到以下错误 covariance matrix is not non negative definite 我认为 这是由于协方差矩阵中的某些值为零 实际上接近于零 但在舍入期间变为零 当协方差矩阵包含零
  • 如何在 JPA/hibernate 中按带有“_”下划线的属性进行排序?

    JPA 默认按 拆分我的排序属性 因此它会抛出 找不到属性 异常 如果我从变量中删除下划线 它就可以正常工作 但我只想将 保留在我的实体属性中 我该怎么办 多变的 Column name CREATE TIME private LocalD
  • ASP.NET MVC - 仅限图像 + 经过身份验证的用户

    是否有可能以某种方式只允许经过身份验证的用户查看某些图像 我目前正在构建一个网络画廊 我不希望未经身份验证的用户能够看到这些图像 您可以将这些图像放在服务器上用户无权访问的某个位置 例如 App Data文件夹 以防止直接访问它们 然后使用
  • 在 R igraph 中使用组创建变量

    以下是我的生殖示例代码 sender code lt c 12 1 6 19 7 8 3 17 13 10 4 9 2 5 15 11 16 20 14 18 receiver code lt c 20 16 7 3 4 11 8 2 10
  • 使用 DSAPI 重写 URL

    我需要重写网址 即 当用户发送 url1 请求时 我们将向 url2 发出请求 url1 不会在浏览器中更改 用户不应该知道任何事情 我环顾四周 除了 DSAPI 过滤器之外没有找到其他解决方案 DSAPI 可以满足我的需要 但是由于经验不
  • MongoDB - 查找与未知字段键的特定条件匹配的文档

    如何查询 MongoDB 集合以查找具有如下结构的文档 这些文档有一个名为thing这是一个子文档 该字段的键是 ID 号的形式 它将一般不为人所知由编写查询的人 使点表示法变得困难 我认为不可能 id 3 id2 234 thing 23
  • 如何保护 APK 中包含的信息?

    我假设有人构建了一个 APK 反编译器 保护敏感信息 例如后端数据库的身份验证参数 的最佳实践是什么 我想某种中间件可以工作 但不能提高速度 什么是 正确的方法 如果您正在编写 Android 应用程序并使用 AWS 强烈建议您查看 htt
  • 使用bulk_save_objects获取插入的主键ID

    使用后如何获取插入的Id 生成的主键 session bulk save objects 我试过这个 for x in y obj Post obj list append obj session bulk save objects obj
  • C# 中的 Group By Sum Linq to SQL

    确实坚持使用 Linq to SQL 分组和求和 到处搜索 但我还不够了解 无法将其他解决方案应用到我自己的解决方案中 我的数据库中有一个名为 view ProjectTimeSummary 的视图 它具有以下字段 string UserD