加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

linq-to-sql – Linq To SQL Group By和Sum

发布时间:2020-12-12 08:56:58 所属栏目:MsSql教程 来源:网络整理
导读:她是一张显示我所拥有的桌子的图片,b我需要显示的网格. opps无法发布图片.我试着解释一下.我的桌子有四个柱子. 项目编号(String) ItemNumber(String) 位置(字符串) 数量.(真实的). 我的网格需要看起来像这样. ProjectNumber ItemNumber QtyMain. 数量其他. 我
她是一张显示我所拥有的桌子的图片,b我需要显示的网格.
opps无法发布图片.我试着解释一下.我的桌子有四个柱子.

>项目编号(String)
> ItemNumber(String)
>位置(字符串)
>数量.(真实的).

我的网格需要看起来像这样.

> ProjectNumber
> ItemNumber
> QtyMain.
>数量其他.

我需要写一个linq查询分组evry line所以我将se 1行pr项目/ ItemNumber组合求和数量为2个不同的列1显示到qty其中location是main,1表示qty where location不是(!=)main. linq可以为我做这个,或者怎么办?

解决方法

public class Foo
{
    public Int32 ProjectNumber;
    public String ItemNumber;
    public String InventLocation;
    public Int32 Qty;
}

void Main()
{
    List<Foo> foos = new List<Foo>(new[]{
        new Foo { ProjectNumber = 1,ItemNumber = "a",InventLocation = "Main",Qty = 3 },new Foo { ProjectNumber = 1,InventLocation = "Sub",Qty = 2 },Qty = 1 },InventLocation = "Sub2",Qty = 5 }
    });

    var foo = from f in foos
              group f by new { f.ProjectNumber,f.ItemNumber } into fGroup
              select new {
                ProjectNumber = fGroup.Key.ProjectNumber,ItemNumber = fGroup.Key.ItemNumber,QtyMain = fGroup.Where (g => g.InventLocation == "Main").Sum (g => g.Qty),Rest = fGroup.Where (g => g.InventLocation != "Main").Sum (g => g.Qty)
              };
    foo.Dump();
}

导致:

IEnumerable<> (1 item)  
ProjectNumber ItemNumber QtyMain Rest 
1             a          6       8

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读