我有一个表NCR包含格式的数据:
ID | Date | Item | Type | Qty
1 | 01/01/13 | Apple | A | 1
2 | 01/01/13 | Apple | B | 1
3 | 01/01/13 | Orange | C | 1
4 | 01/01/13 | Orange | A | 2
6 | 01/01/13 | Orange | C | 1
Run Code Online (Sandbox Code Playgroud)
我想生成一个linq查询,它给出了给定日期的类型和总和的摘要,如下所示:
Item | A | B | C
Apple | 1 | 1 | 0
Orange | 2 | 0 | 2
Run Code Online (Sandbox Code Playgroud)
到目前为止我有这个:
var q = data.GroupBy(l => l.Item)
.Select(g => new {
Item = g.Key,
Total = g.Sum(c => c.Qty),
A = g.Sum(c => c.Type == "A"),
B = g.Sum(c => c.Type == "B"),
C = g.Sum(c => c.Type == "C")
});
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法给g.Sum lambda语句提供标准.如果我使用Count(这是错误的数据)我可以给出critera,但为什么Sum错过了这个?创建可用数据汇总表的替代方法是什么?
Jon*_*eet 30
提供给的代表Sum不是谓词; 这是一个选择器.
你想把Qty财产加起来吗?如果是这样,我怀疑你想要:
A = g.Where(c => c.Type == "A").Sum(c => c.Qty),
B = g.Where(c => c.Type == "B").Sum(c => c.Qty),
C = g.Where(c => c.Type == "C").Sum(c => c.Qty)
Run Code Online (Sandbox Code Playgroud)
(或者你也可以按类型分组.)
| 归档时间: |
|
| 查看次数: |
33243 次 |
| 最近记录: |