Linq多表合一查询
2015-10-04 11:41
411 查看
这里有四张表
现在需要查询出供应商的所有进、退货记录,并按供应商与商品分组,最后按供应商与商品id的顺序排列,查询结果汇总在一张表中。
//进货 public class Buy { //进货表id public int BuyID { get; set; } //供应商id public int SupID { get; set; } } //进货明细 public class BuyItems { //进货明细id public int BID { get; set; } //进货id public int BuyID { get; set; } //商品id public int ProductID { get; set; } //进货总数 public int BuyCount { get; set; } } //退货 public class Returns { //退货id public int ReturnID { get; set; } //供应商id public int SupID { get; set; } } //退货明细 public class ReturnItems { //退货明细id public int RID { get; set; } //退货id public int ReturnID { get; set; } //商品id public int ProductID { get; set; } //退货总数 public int ReturnCount { get; set; } }
现在需要查询出供应商的所有进、退货记录,并按供应商与商品分组,最后按供应商与商品id的顺序排列,查询结果汇总在一张表中。
//BuyTable为进货表(Buy) //BuyItemsTable为进货明细表(BuyItems) //ReturnsTable为退货表(Returns) //ReturnItemsTable为退货明细表(ReturnItems) var query = BuyTable.Join(BuyItemsTable, a => a.BuyID, b => b.BuyID, (a, b) => new { a.SupID, b.ProductID, BuyCount = b.BuyCount, ReturnCount = 0, }).Concat(ReturnsTable.Join(ReturnItemsTable, a => a.ReturnID, b => b.ReturnID, (a, b) => new { a.SupID, b.ProductID, BuyCount = 0, ReturnCount = b.ReturnCount, })).GroupBy(p => new { p.SupID, p.ProductID }).Select(p => new { p.Key.SupID, p.Key.ProductID, SumBuy = p.Sum(s => s.BuyCount), SumReturn = p.Sum(s => s.ReturnCount) }).OrderBy(p => p.SupID).ThenBy(p => p.ProductID);
相关文章推荐
- codeforces round#323(div2 D)(思路)
- 关于*大学计算机科学与技术学院的大一学生几个关于Linux学习方面的疑惑之回复
- 解决PHP move_uploaded_file函数移动图片失败
- Substring with Concatenation of All Words字符串中找到包含所有单词的子串
- Set集合实现元素不重复原理
- DirectX11 裁剪像素
- 杭电OJ -- 2034 人见人爱A-B(c++练手的好题目)
- android studio安装中遇到的问题(ubuntu)
- symfony报错:Declaration of testAction::execute() must be compatible with sfComponent::execute($request
- 110. Balanced Binary Tree (Tree; DFS)
- 成员变量、类变量、局部变量的区别
- ios9 [app setStatusBarHidden:NO] is deprecated
- 两个栈实现队列
- 信息安全系统设计基础第三周学习总结
- 信息的表示和处理
- hdu 4513 吉哥系列故事——完美队形II(manacher)
- UVA 571 Jugs ADD18 小白书10 数学Part1 专题
- 104. Maximum Depth of Binary Tree (Tree; DFS)
- 程序设计基石与实践系列之C语言程序员必读的5本书
- 模数和数模转换电路