我正在尝试使用group by语句进行查询,但到目前为止还没有成功。
我有一个表,上面有不同类型的活动(tblExcursion),还有一个表,上面有计划的(tblReservationDetail)。在tblExcursion中,我有一个'GroupName‘列。在一个GroupName下有多个活动(例如皮划艇、帆船、水球是水上运动的组名)。
现在我想检索每个GroupName (而不是每个活动/远足!)的参与者数量。但是我不能使用.GroupBy()或group...by
下面是我使用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发布于 2012-04-02 21:20:29
您想要按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)
...
}https://stackoverflow.com/questions/9976917
复制相似问题