sql 有一个字段的不同计数的语句
sql having statement with distinct count of a field
我需要你的帮助
我如何将此 sql 解释为 linq:
SELECT FK_ClassId, LectureDays
FROM tbl_TimeTables
WHERE (FK_ClassId = 11)
group by fk_classid, lecturedays
having count(distinct Period) < 7
任何帮助将不胜感激谢谢
蒂姆
应该是这样的
(group by id, count period, apply where clause, project result)
var query = from timetable in context.TimeTables
where timetable.ClassId == classId
group timetable by new
{
timetable.ClassId,
timetable.Period
} into groupings
let counter = groupings
.Select(p => p.Period)
.Distinct()
.Count()
where counter < 7
select new
{
ClassId = groupings.Key.ClassId,
Days = from grouping in groupings
select grouping.LectureDays
};
感谢您为我指明了正确的方向,抱歉我有一段时间没有回复了,实在是太忙了。
看了你的解决方案后,我有时间玩了,下面这个为我做了:
from t in Tbl_TimeTables
where t.FK_ClassId == 11
group t by new
{
t.FK_ClassId,
t.LectureDays
} into groupings
let counter = groupings
.Select(p => p.Period)
.Distinct()
.Count()
where counter < 7
select new
{
ClassId = groupings.Key.FK_ClassId,
Days = (from grouping in groupings
select grouping.LectureDays).Distinct()
}
我只需要将组按键更改为演讲日而不是句点,这将我得到的一系列结果删除为一个结果。
非常感谢丹
我需要你的帮助 我如何将此 sql 解释为 linq:
SELECT FK_ClassId, LectureDays
FROM tbl_TimeTables
WHERE (FK_ClassId = 11)
group by fk_classid, lecturedays
having count(distinct Period) < 7
任何帮助将不胜感激谢谢 蒂姆
应该是这样的 (group by id, count period, apply where clause, project result)
var query = from timetable in context.TimeTables
where timetable.ClassId == classId
group timetable by new
{
timetable.ClassId,
timetable.Period
} into groupings
let counter = groupings
.Select(p => p.Period)
.Distinct()
.Count()
where counter < 7
select new
{
ClassId = groupings.Key.ClassId,
Days = from grouping in groupings
select grouping.LectureDays
};
感谢您为我指明了正确的方向,抱歉我有一段时间没有回复了,实在是太忙了。 看了你的解决方案后,我有时间玩了,下面这个为我做了:
from t in Tbl_TimeTables
where t.FK_ClassId == 11
group t by new
{
t.FK_ClassId,
t.LectureDays
} into groupings
let counter = groupings
.Select(p => p.Period)
.Distinct()
.Count()
where counter < 7
select new
{
ClassId = groupings.Key.FK_ClassId,
Days = (from grouping in groupings
select grouping.LectureDays).Distinct()
}
我只需要将组按键更改为演讲日而不是句点,这将我得到的一系列结果删除为一个结果。 非常感谢丹