Linq to SQL(联接 聚合 分组)

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        NorthwindDBDataContext dc = new NorthwindDBDataContext();
        int count = dc.Products.Count();


     

        //1、获取根据分类ID得到最贵的、最便宜的、产品价格


        var result = from p in dc.Products
                     group p by p.CategoryID into g
                     select new
                     {
                         Max=g.Max(x=>x.UnitPrice),
                         Min=g.Min(x=>x.UnitPrice),
                         Group=g.Key
                     };

                   
                   
 

        //2、获得每个分类中产品的总个数,并显示分类名、总数、总价

        var result1 = from p in dc.Products
                      join c in dc.Categories
                      on p.CategoryID equals c.CategoryID
                      group new { p=p,c=c } by c.CategoryName into g
                      select new
                      {

                          Name = g.Key,
                          Sum=g.Sum(x=>x.p.UnitPrice),
                          Count=g.Count()

                      };
 


        //3、获得每个分类中最贵产品的价格和产品名字

        var result2 = from p in dc.Products
                      join c in dc.Categories
                      on p.CategoryID equals c.CategoryID
                      group new { p = p, c = c } by c.CategoryName into g
                      select new
                      {

                        Max=g.Max(x=>x.p.UnitPrice),
                        CategoryName=g.Key,
                        ProductName = (from p in dc.Products
                                       where p.UnitPrice == g.Max(x => x.p.UnitPrice)
                                       select p.ProductName).First()

                      };


       GridView1.DataSource = result2;
       GridView1.DataBind();
    }
}

转载于:https://www.cnblogs.com/Point-s/p/5947304.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值