我正在努力,到目前为止还没有成功使用group by-statement进行查询。
我有一个包含不同类型活动的表(tblExcursion)和一个包含计划(tblReservationDetail)的表。在tblExcursion中我有一个列'GroupName'。一个GroupName下有多个活动(例如皮划艇,帆船,waterpolo是groupname Watersports)。
现在我想检索每个GroupName的参与者数量(不是每个活动/游览!)。但是我没有通过.GroupBy()或分组......来到
这是我使用activityname而不是groupname的查询:
var vAllExcursions = (from oExcursion in clsApplication._oDBConnection.tblExcursions
select oExcursion).ToList();
foreach (tblExcursion EXitem in vAllExcursions)
{
var vAllExcursionsPerType = (from oReservationDetail in clsApplication._oDBConnection.tblReservationDetails
where oReservationDetail.StartTime.Date.Year == this.cboYear.getSelectedID()
&& oReservationDetail.StartTime.Date.Month == this.cboMonth.getSelectedID()
&& oReservationDetail.ExcursionID == EXitem.ID
select oReservationDetail).ToList();
}
Here I fill my datagrid
答案 0 :(得分:1)
您希望按GroupName
分组以获取群组:
var vAllExcursions = clsApplication._oDBConnection.tblExcursions
.GroupBy(ex => ex.GroupName)
.ToList();
然后在你的内循环中,通过检查ExcursionID
是否匹配与该组关联的列表中的任何id来查找任何相关的预留:
foreach (var EXitemGroup in vAllExcursions)
{
var excursionIds = EXitemGroup.Select (exg => exg.ID).ToArray();
...
&& excursionIds.Contains(oReservationDetail.ExcursionID)
...
}