LinQ在总重复值数量和总
问题描述:
我有这个表:LinQ在总重复值数量和总
Con Fecha Rid Pdv Pla Descripcion Total Quantity
----------------------------------------------------------------------------
1 2016-01-01 COMIDAS FUEM 184 POZ ROJO 85 1
10 2016-01-01 DESAYUNOS VTSI 184 POZ ROJO 85 4
100 2016-01-01 COMIDAS VTSI 693 ENVASE 1 LT 10 1
101 2016-01-01 DESAYUNOS REST 693 ENVASE 1 LT 10 2
102 2016-01-01 COMIDAS VTSI 693 ENVASE 1 LT 10 1
103 2016-01-01 COMIDAS REST 73 NOPAL/PIÑA VASO 34 6
104 2016-01-01 DESAYUNOS REST 73 NOPAL/PIÑA VASO 34 1
105 2016-01-01 DESAYUNOS REST 184 POZ ROJO 85 9
106 2016-01-01 COMIDAS VTSI 693 ENVASE 1 LT 10 1
107 2016-01-01 CENAS REST 184 POZ ROJO 85 2
108 2016-01-01 DESAYUNOS REST 184 POZ ROJO 85 1
我需要的是一个LINQ语句概括所有的“数量的”基于对“解放军”的数据是唯一的每个项目我的主键,我想知道有多少“量”每一个不同的“解放军”已经和还总结导致输出这样总的每个不同的“解放军”的:
Con Fecha Rid Pdv Pla Descripcion Total Quantity
----------------------------------------------------------------------------
1 2016-01-01 COMIDAS FUEM 184 POZ ROJO 1445 17
100 2016-01-01 COMIDAS VTSI 693 ENVASE 1 LT 50 5
103 2016-01-01 COMIDAS REST 73 NOPAL/PIÑA VASO 34 6
104 2016-01-01 DESAYUNOS REST 73 NOPAL/PIÑA VASO 34 1
我怎样才能得到这个输出用Linq声明?所有我到现在为止是:
foreach (var item in db.Pos.Select(l => l.Pla).Distinct())
{
//Do stuff
}
答
您需要使用GROUPBY
db.Pos.GroupBy(a=> a.Pla).Select(p=> new {Pla = p.Key, Quantity = p.Sum(q=>q.Quantity)});
的GroupBy返回为不同的键,你会得到不同的值,解放军各自的数量之和
答
你
:可以通过Pla
值和
Sum
的
Total
和该组中的每个元素的值
Quantity
GroupBy
元素
var plas = db.Pos.GroupBy(p => p.Pla).Select(g => new
{
Pla = g.Key,
Total = g.Sum(t => t.Total),
Quantity = g.Sum(t => t.Quantity)
});