【问题标题】:How to get the max count of rows for specific field?如何获取特定字段的最大行数?
【发布时间】:2014-06-17 09:05:21
【问题描述】:

我是 LINQ 新手,遇到这种情况:

表 1:

表 2:

我想从表1中选择与TCode相关的最大捐款数,并获取与返回结果对应的TDescription。

提前致谢

更新: 我已经设法通过这段代码获得了每种捐赠类型的计数:

Dim query = (From aDonation In DBEntity.Donation_Tbls
                Group aDonation By aDonation.TCode Into myGroup = Group
                Select code = TCode, cnt = myGroup.Count)

我需要的是只获得最大 cnt 及其代码的一行/结果。

【问题讨论】:

标签: sql vb.net linq


【解决方案1】:

你可以试试这样的:

var maxDonated = table1.GroupBy(d => d.TCode)
                .OrderByDescending(g => g.Count())
                .FirstOrDefault().Key;  

var maxDonatedDescription = table2.FirstOrDefault(t => t.TCode == maxDonated).TDescription;

请检查它是否有效,我没有测试过。 我刚刚展示了你如何做到这一点,你应该做空检查等。

VB 代码: 我正在研究 C#,所以不确定它是否完美

Dim maxDonated = table1.GroupBy(Function(d) d.TCode)
                 .OrderByDescending(Function(g) g.Count())
                 .FirstOrDefault().Key

Dim maxDonatedDescription = table2.FirstOrDefault(Function(t) t.TCode = maxDonated).TDescription

【讨论】:

  • 你能在VB.Net中输入吗?
  • @Roshdy,我已经添加了VB代码,如果对你有帮助可以试试
  • 我真的无法将 C# 映射到 VB,而且您发送的那个在语法上是错误的。无论如何感谢您的帮助
  • 哦,但如果你能理解它,那么它可能对你有用。你可以尝试同样的事情,因为我在 VB 上不是那么好。祝你好运
猜你喜欢
  • 2018-11-28
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多