首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在实体中用SUM()翻译SQL语句

在实体中用SUM()翻译SQL语句
EN

Stack Overflow用户
提问于 2015-02-03 14:54:42
回答 1查看 104关注 0票数 2

我试图翻译这个SQL代码:

代码语言:javascript
运行
复制
SELECT w.Id, w.LastName, w.FirstName, SUM(d.Price*dt.Number) AS somme
FROM  Waiter w
INNER JOIN  Client c on w.Id = c.WaiterId
INNER JOIN  DisheOnTable dt on c.Id = dt.ClientId
INNER JOIN  Dishe d on dt.DisheId = d.Id
GROUP BY w.Id, w.LastName, w.FirstName
ORDER BY somme DESC;

在实体框架内。

我试过这样的方法

代码语言:javascript
运行
复制
var query2 = (from w in db.Waiter
              join c in db.Client on w.Id equals c.WaiterId
              join dt in db.DisheOnTable on c.Id equals dt.ClientId
              join d in db.Dishe on dt.DisheId equals d.Id
              group w by new { w.Id, w.LastName, w.FirstName } into g
              //orderby g.Select() descending
              select new
              {
                  id = g.Key.Id,
                  lastname = g.Key.LastName,
                  firstname = g.Key.FirstName,
                  total = g.Sum(q => q.)
              });

但我的总和不起作用(经过多次研究和尝试),我不知道如何乘以我的变量。

PS : SQL语句工作得很好,我试过了。

谢谢你的帮助!:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 15:37:52

您需要在dishDishOnTable别名上进行分组,就像PriceDish中一样,NumberDishOnTable

代码语言:javascript
运行
复制
group new{ d,dt} by new {w.Id, w.LastName, w.FirstName} into g

现在把你想要的列和起来

代码语言:javascript
运行
复制
 select new { 
             id = g.Key.Id, 
             lastname = g.Key.LastName, 
             firstname = g.Key.FirstName, 
             total = g.Sum(q => q.d.Price * q.dt.Number)
            }).OrderBy(x=>x.total)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28301887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档