当前位置:  开发笔记 > 编程语言 > 正文

Linq to SQL中的Sum和Group By?

如何解决《LinqtoSQL中的Sum和GroupBy?》经验,为你挑选了2个好方法。

刚刚开始使用Linq to SQL,请原谅新手问题.我正在尝试在Linq to SQL(VB.NET)中重现以下(工作)查询:

Select
    f.Title,
    TotalArea = Sum(c.Area)
From Firms f
Left Join Concessions c on c.FirmID = f.FirmID
Group By f.Title
Order by Sum(c.Area) DESC

(一家公司有许多特许经营权;特许经营权的面积为公顷.我想要一份公司清单,从那些拥有所有特许权总面积最大的公司开始.)

我想像Linq to SQL等价(伪代码)这样的东西

From f As Firm In Db.Firms _
Order By f.Concessions.Sum(Area)

......但那不对.谁能指出我正确的方向?



1> Herb Caudill..:

回答

这是正确的Linq to SQL等价物

From c In Concessions _
Join f In Firms on f.FirmID equals c.FirmID _
Group by f.Title _
Into TotalArea = sum(c.OfficialArea)  _
Order by TotalArea Descending _
Select Title, TotalArea

感谢@CMS指点我LinqPad - 这是一个很棒的工具.您只需将其指向您的数据库即可关闭并运行.不仅包括数百个样本,而且您可以针对包含的实时数据库运行它们.从提供的样本开始,我几分钟就能得出上述查询.


对LinqPad赞不绝口
你能提供这个细分的C#版本吗?我已经尝试但没有成功.

2> CMS..:

在这里你可以找到很多关于使用聚合函数和分组的例子,另外我非常推荐你使用LinqPad,它是一个很好的工具来测试你的查询,这是学习LINQ的好方法,它预装了200个例子.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有