-2
var product = db.Products
                .Where(x => x.ProductKey == 310)
                .Join(db.InternetSales, p => p.ProductKey,
                       c => c.ProductKey, (p, c) => c)
                .SingleOrDefault();

这是我的查询,但我不知道如何按 ProductName 对它进行分组并对销售额求和。

4

2 回答 2

0

尝试这个:

 var product = db.Products.Where(x => x.ProductKey == 310)
                 .Join(db.InternetSales, p => p.ProductKey, 
                       c => c.ProductKey, (p, c) => c)
                 .GroupBy(c => c.ProductName)
                 .Select(g => new { g.Key, TotalSales = g.Sum(x => x.Sales) })
                 .SingleOrDefault();

或者,如果您需要总和,请尝试以下操作:

 var totalSales = db.Products.Where(x => x.ProductKey == 310)
                    .Join(db.InternetSales, p => p.ProductKey, 
                          c => c.ProductKey, (p, c) => c)
                    .GroupBy(c => c.ProductName)
                    .SingleOrDefault()
                    .Sum(x => x.Sales);
于 2013-05-01T20:26:25.403 回答
0

您根本不需要Join,因为您已经拥有ProductKey然后用于连接InternetSales表。

我认为您最终可以得到以下结果:

var TotalSales = db.InternetSales
                   .Where(s => s.ProductKey == 310)
                   .Select(s => s.Sales)
                   .Sum();
于 2013-05-01T20:34:19.350 回答