sql-server - LINQ:有关 groupby 的帮助,似乎不像 SQL 那样工作:-) 只让我返回 .Key 而没有其他?

标签 sql-server linq linq-to-sql group-by aggregate-functions

我有以下分组的 linq 查询

  var results = from c in C
     join h in h on c.Code equals
        h.Code
     join m in M on c.Code equals
        m.Code
          group c by c.Code into g
            select
              new 
              {
                 Group = g.Key,
                 Total = g.Count()
              }

效果很好,返回 2 条记录,其中 1 项总共有 4 条记录,另一项总共有 2 条记录。分组非常好!但我只返回分组字段...

H 表上还有一个名为 tDate 的字段,M 表上还有一个名为 pCode 的字段。

现在我尝试将我的选择更改为类似这样,但 linqpad 提示 m 和 h 变量,因为我认为它们没有包含在组中...但这就是我迷失的地方..我如何返回更多分组依据上的字段。当然,对于分组中的每条记录,pCode 和 tDate 都是相同的...因此我仍然应该得到 2 条记录,但有更多列。

            select
              new 
              {
                 Group = g.Key,
                 Total = g.Count(),
                 PCode = m.pCode,
                 TDate = h.tDate
              }

任何人都可以向我伸出援助之手......

提前致谢

最佳答案

SQL 会给您一个关于未将列包含在聚合函数中的错误。要包含它们,您必须将它们包含在分组依据中,或者重新连接到数据以使它们与分组数据相关。

关于sql-server - LINQ:有关 groupby 的帮助,似乎不像 SQL 那样工作:-) 只让我返回 .Key 而没有其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4279075/

相关文章:

sql - Select * 和 Select [list each col] 有区别吗

sql-server - SQL Server 数据库项目 - 创建更改脚本

c# - 基于计数的 orderby 相关性的 LINQ 关键字搜索 (LINQ to SQL)

sql - 如何在 SQL 的 select 语句中分配一个随机值?

c# - LINQ to Entities 无法识别方法 'System.TimeSpan Subtract(System.DateTime)' 方法

c# - 为什么这个 foreach 循环不抛出 "collection was modified"异常?

c# - LINQ2SQL : Join multiple tables

C# LINQ to SQL : Refactoring this Generic GetByID method

sql-server - 具有别名和 'normal' 数据帧 : python pandas versus mssql 的 Groupby 和 count()

c# - 无效的列名 SQL Server