gpt4 book ai didi

c# - 使用 LINQ to SQL 对所有内容进行分组、求和和聚合

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:16 25 4
gpt4 key购买 nike

我有两张 table Students 和 Origami。折纸有学生表的外键。每个学生每个月可以制作一张或多张折纸。

学生样本数据:

学号、名字、姓氏

  • 187 , 约翰 , 马斯洛
  • 196, Crystal ,胡德
  • 195,莎拉,刘易斯

折纸示例数据:

OrigamiId, StudentId, CreationDate, NumberOfOrigami

  • 1 , 187 , 5/17/2010 1:06:55 PM , 1
  • 2 , 196 , 5/22/2010 1:31:28 PM , 2
  • 3 , 187 , 6/18/2010 1:51:40 PM , 2
  • 4 , 187 , 6/19/2010 2:13:35 PM , 1
  • 5 , 196 , 7/17/2010 2:19:44 PM , 3
  • 6 , 196 , 7/19/2010 2:23:02 PM , 2
  • 7 , 195 , 7/20/2010 3:04:15 PM , 3

还有更多类似这种格式的记录。

我想统计每个学生每月的折纸总数。类似于以下内容:

  • 姓名,2010年1月,2010年2月等
  • 约翰·马斯洛 , 2 , 3
  • Crystal 头罩 , 4 , 5
  • 莎拉·刘易斯,6 岁,5 岁

谢谢。

Update One

    Dim query = From st In db.Students _
Join or In db.Origami On or.StudentId Equals st.StudentId _
Group By or.StudentId Into TotalOrigami = Sum(or.NumberOfOrigami) _
Select StudentId, TotalOrigami

此查询仅给出每个学生的折纸总数。但是我想要每个学生每月的折纸数量。欢迎提出任何建议。

最佳答案

可以在折纸对象上创建一个仅包含月/年的额外属性。然后使用下面的查询

            var q = from st in db.Students 
join or in db.Origami on or.StudentId equals st.StudentID
group st by new { st.StudentId, or.MonthYear } into g
select new { g.Key.StudentId, g.Key.MontYear, Total = g.Count() };

我刚刚看到这个例子是用 C# 写的,但我希望你能通过。

关于c# - 使用 LINQ to SQL 对所有内容进行分组、求和和聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com