使用LINQ实现分组统计

protected void Page_Load(object sender, EventArgs e)
{
    WorkOfTARSDataContext myDataContext = new WorkOfTARSDataContext();
//法1       

var huojiang1 =
from j in myDataContext.Huojiangmingxi
join lb in myDataContext.Huojiangleibie on j.Leibie equals lb.Id
join jb in myDataContext.Huojiangjibie on j.Jibie equals jb.Id
join dc in myDataContext.Huojiangdengci on j.Dengci equals dc.Id
select new {获奖类别 = lb.Mingcheng, 获奖级别 = jb.Mingcheng,获奖等次=dc.Mingcheng } into g
group g by new { g.获奖类别, g.获奖级别,g.获奖等次 } into g2
orderby g2.Key.获奖类别,g2.Key.获奖级别,g2.Key.获奖等次
select new {类别=g2.Key.获奖类别,级别=g2.Key.获奖级别,等次=g2.Key.获奖等次,数量=g2.Count()};

//法2

var huojiang2 =
from j in myDataContext.Huojiangmingxi
orderby j.Leibie,j.Jibie,j.Dengci
group j by new { j.Leibie, j.Jibie, j.Dengci } into g
join lb in myDataContext.Huojiangleibie on g.Key.Leibie equals lb.Id
join jb in myDataContext.Huojiangjibie on g.Key.Jibie equals jb.Id

转载于:https://www.cnblogs.com/luoyaoquan/archive/2012/06/20/2556385.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值