我有一个数据表,比如
Date status recno
---------------------------------
2012 DST;Par 1
------------------------------------
2012 DST 2
--------------------------------
2012 DST 3
--------------------------------------------
2012 DST;Ts 4
-----------------------------------目前,我编写了一个查询,如下所示:
var data = from b in table.AsEnumerable()
where b.DateInterval>=fromDate && b.DateInterval<=toDate
group b by b.Channel1_status into g
select new
{
AccountNo=accountNumber,
Status = statusLabels[g.Key].ToString(),
StatusCount = g.Count(),
};但是,它将这些结果返回给我:
Result: DST-2
DST;par-1 and DST;Ts-1
Expected: DST-4 DST;par-1 and DST;Ts-1请给我解释一下我做错了什么,以及如何得到预期的结果。
发布于 2012-10-15 14:56:11
如果您想以DST开头的状态对所有变量进行计数,同时仍然对变量(DST;par,DST;ts)进行分组,则可以手动执行此操作。
类似这样的东西(没有经过测试,但我想你已经明白了):
var dst = data.FirstOrDefault(x => x.Status == "DST");
if (dst != null) {
foreach (var group in data.Where(x => x != dst && x.Status.StartsWith("DST")) {
dst.StatusCount += group.StatusCount;
}
}https://stackoverflow.com/questions/12890442
复制相似问题