gpt4 book ai didi

c# - 使用 SUM 和 IS NOT NULL 对 LINQ for MVC 进行 SQL 查询

转载 作者:行者123 更新时间:2023-12-02 15:28:21 25 4
gpt4 key购买 nike

有人可以帮我将此查询转换为 LINQ,因为我刚开始使用 Linq,然后它将用于 Google 图表信息。

Select Question.SubSectionName, SUM(Answers.RatingAnswer) AS Ratings 
FROM Question,Answers,Response,Section
Where Answers.QuestionID = Question.QuestionID
AND Answers.ResponseID = Response.ResponseID
AND Question.SectionID=Section.SectionID
AND Section.SectionID = 2
AND Response.ResponseID = @0
AND Question.SubSectionName IS NOT Null
GROUP BY Question.SubSectionName;

到目前为止我得到了什么:

var submitted = (from ans in db.Answers join ques in db.Questions on 

ans.QuestionID equals ques.QuestionID
join resp in db.Responses on ans.ResponseID equals resp.ResponseID
join sec in db.Sections on ques.SectionID equals sec.SectionID
where sec.SectionID == 2 && resp.ResponseID == model.ResponseID
&& ques.SubSectionName!= null
select ques.SubSectionName && ans.RatingAnswer)

感谢您的帮助。

最佳答案

根据您的评论,这应该输出一组评级答案的总和:

var submitted =
(from ans in db.Answers
join ques in db.Questions on ans.QuestionId equals ques.QuestionId
join resp in db.Responses on ans.ResponseId equals resp.ResponseId
join sec in db.Sections on ques.SectionId equals sec.SectionId
where sec.SectionId == 2 && resp.ResponseId == model.ResponseID && ques.SubSectionName != null
select new { SubSectionName = ques.SubSectionName, RatingAnswer = ans.RatingAnswer })
.GroupBy(a => a.SubSectionName)
.Select(a => new { SectionName = a.Key, Sum = a.Sum(s => s.RatingAnswer) });

可能有一种更有效的写法。

我还要指出,对我来说,数据结构似乎有缺陷。也就是说,它似乎没有完全标准化或不正确。这当然需要你自己去锻炼。

关于c# - 使用 SUM 和 IS NOT NULL 对 LINQ for MVC 进行 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35180454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com