LinQ总和不同值的数量和总计

阿图罗·马丁内斯(Arturo Martinez)

我有这张桌子:

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语句,该语句基于作为主键的“ P​​la”数据对唯一的每个物料上的所有“数量”求和,我想知道每个不同的“ Pla”有多少“数量”并求和每个不同“ Pla”的总和,结果如下:

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
 }
Mujassir Nasir |

您需要使用groupby

db.Pos.GroupBy(a=> a.Pla).Select(p=> new {Pla = p.Key, Quantity = p.Sum(q=>q.Quantity)});

GroupBy将键作为唯一值返回,因此您将获得Pla的不同值及其各自数量的总和

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章