【发布时间】:2018-01-06 09:30:56
【问题描述】:
请 - 我有这个 SQL 语句:
SELECT FK_ClassId, LectureDays
FROM tbl_TimeTables
WHERE Term = 'First Term'
AND FK_session = 4
AND fk_classId = 1
AND (fk_subjectid <> 1)
GROUP BY FK_classId, LectureDays
HAVING (COUNT(*) < 6)
这会返回这个结果:
Image Embedded Here, giving the right result
但是当我解释为 linq 时,我得到了不同的结果:
Tbl_TimeTables.GroupBy(x => new { x.FK_Session, x.Term, x.LectureDays,
x.FK_ClassId, x.FK_SubjectId })
.Where(grp => grp.Count() < 6 && grp.Key.FK_Session == 4 && grp.Key.Term ==
"First Term" && grp.Key.FK_ClassId == 1 && grp.Key.FK_SubjectId != 1)
.Select(grp => new
{
LectureDay = grp.Key.LectureDays,
ClassId = grp.Key.FK_ClassId
})
Wrong Results Picture Link here
请看我的代码,我做错了什么?
谢谢
提姆
【问题讨论】:
-
你不只是在每个查询中按不同的东西分组吗?
-
嗨,马特,如果您能指出正确的方向,那我不知道如何纠正。谢谢
-
感谢 marc_s 和 Aomine 的编辑
-
事实上,我从来不知道语言的力量,Matt Gibson,你实际上给我指明了正确的方向,我以前看不到,但现在我明白了。我在下面发布了正确的 linq 查询。谢谢
-
不客气。