使用分组依据进行查询
本文关键字:查询 | 更新日期: 2023-09-27 18:29:40
我正在尝试使用groupby语句进行查询,但到目前为止没有成功。
我有一张表,里面有不同类型的活动(tblExcursion)和一张表(tblReserveDetail)。在tblExcursion中,我有一个列"GroupName"。一个GroupName下有多个活动(例如皮划艇、帆船、水上运动是GroupName Watersports)。
现在,我想检索每个GroupName的参与者数量(而不是每个活动/游览!)。但我并不是用.GroupBy()或group。。。通过
这是我使用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
您想要按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)
...
}