[LINQ] group by 与连接查询
- //副表 树种-品名-折材率 汇总
- var listNeed = (from t in dtNeed.AsEnumerable()
- group t by new { t1 = t.Field<string>("SZ"), t2 = t.Field<string>("PM") } into m
- select new
- {
- SZ = m.Key.t1,
- PM = m.Key.t2,
- Need = m.Sum(n => n.Field<decimal>("Need"))
- }).ToList();
- //台账 树种-品名-结余量 汇总
- var listSY = (from t in dtStorage.AsEnumerable()
- group t by new { t1 = t.Field<string>("SZNo").Substring(,), t2 = t.Field<string>("CZId") } into m
- select new
- {
- SZ = m.Key.t1,
- PM = m.Key.t2,
- SY = m.Sum(n => n.Field<decimal>("SY"))
- }).ToList();
- //所需结余对比 树种-品名-副表所需-台账结余
- var listAll = (from dn in listNeed
- join ds in listSY
- on new { dn.SZ, dn.PM } equals new { ds.SZ, ds.PM }
- into joined
- from temp in joined.DefaultIfEmpty()
- select new
- {
- SZ = dn.SZ,
- PM = dn.PM,
- Need = dn.Need,
- SY = temp == null ? : temp.SY
- }).ToList();
结果:
- http://blog.sina.com.cn/s/blog_46e9573c01014fx2.html
- 1、左连接:
- var LeftJoin = from emp in ListOfEmployees
- join dept in ListOfDepartment
- on emp.DeptID equals dept.ID into JoinedEmpDept
- from dept in JoinedEmpDept.DefaultIfEmpty()
- select new
- {
- EmployeeName = emp.Name,
- DepartmentName = dept != null ? dept.Name : null
- };
- 、右连接:
- var RightJoin = from dept in ListOfDepartment
- join employee in ListOfEmployees
- on dept.ID equals employee.DeptID into joinDeptEmp
- from employee in joinDeptEmp.DefaultIfEmpty()
- select new
- {
- EmployeeName = employee != null ? employee.Name : null,
- DepartmentName = dept.Name
- };
- 、内连接:
- var query = from t in entitiy.TB_GCGL_ADA_USER
- join p in entitiy.TB_GCGL_ZY_ZYK
- on t.ETPRS_CODE equals p.ETPRS_CODE
- select new TB_USER_ZYK
- {
- USER_ID = t.USER_ID,
- USER_NAME = t.USER_NAME,
- USER_PASSWORD = t.USER_PASSWORD,
- };
[LINQ] group by 与连接查询的更多相关文章
- Linq to Sql 左连接查询
var query = from t0 in context.ExpressSendMaster join t1 in context.Supplier on t0.SupplierCode equa ...
- Linq连接查询之左连接、右连接、内连接、全连接、交叉连接、Union合并、Concat连接、Intersect相交、Except与非查询
内连接查询 内连接与SqL中inner join一样,即找出两个序列的交集 Model1Container model = new Model1Container(); //内连接 var query ...
- LinQ中合并、连接、相交、与非查询
LinQ中Union合并查询:连接不同的集合,自动过滤相同项:延迟.即是将两个集合进行合并操作,过滤相同的项 var cities = (from p in mylinq.System_Places ...
- mysql查询、子查询、连接查询
mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.gr ...
- mysql 子句、子查询、连接查询
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页
GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...
- 把Linq查询返回的var类型的数据 转换为DataTable EF连接查询
问题:我要获得一个角色下对应的所有用户,需要两表连接查询,虽然返回的只有用户数据,但是我想到若是返回的不只是用户数据,而还要加上角色信息,那么我返回什么类型呢,返回var吗,这样不行. 于是我网上找找 ...
- 【2017-11-26】Linq表连接查询
class Program { static void Main(string[] args) { //Linq创建的数据库上下文对象db DataClasses2DataContext db = n ...
- mysql的查询、子查询及连接查询
>>>>>>>>>> 一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组). ...
随机推荐
- [原创] JAVA 递归线程池测试 ExecutorService / ForkJoinPool
测试工具使用递归的方式获取子进程的Msg消息,目前有2种常用的ExecutorService / ForkJoinPool 为了测试哪种效果较好,我们来写个测试Demo,循环5555555次+1(加锁 ...
- git切换远程仓库地址
$ git remote -vorigin http://192.168.1.100/aaa/Project.git (fetch)origin http://192.168.1.100/aaa ...
- VS2017报错 未能加载文件或程序集”Oracle.DataAccess, Version=2.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"或它的某一个依赖项。试图加载格式不正确的程序
1.VS2017调用Oracle数据库报错:(采取Oracle.DataAccess.Client.dll方法调用) 2.解决方案:(将架构由anycpu转成x86或者x64) 3.具体步骤:anyc ...
- Redis深入学习笔记(三)RDB及AOF流程
RDB是Redis持久化数据的一种方式,是执行时间点的Redis内存快照,redis数据还原时加载rdb文件,Redis的主从数据同步也是基于RDB实现的. RDB流程: 1)执行bgsave命令,R ...
- lucene搜索之高级查询
使用Query子类查询 MatchAllDocsQuery TermQuery NumericRangeQuery BooleanQuery 使用QueryParser QueryParser Mul ...
- axios与vue的配合使用事例,实现缓存和重复加载的控制
import Vue from "vue"; import qs from "qs"; import Store from "../vuex/stor ...
- python3使用pymysql库连接MySQL的常用操作
#导入pymysql模块import pymysql #连接数据库connect = pymysql.connect( host='localhost', port=3306, user='root' ...
- 另类P、V操作问题-详细图解
问题模型 有一个系统,定义如下P.V操作: P(s): s.count--; then 将本进程插入相应队列末尾等待; V(s): s.count++; then 从相应等待队列队尾唤醒一个进程,将其 ...
- 树莓派(Raspberry Pi 3)安装centos7后yum无法使用解决办法
树莓派(Raspberry Pi 3)安装centos7后yum无法使用解决办法 人穷,闲鱼淘了个二手的树莓派3 英国版,无奈咱也不会用,很无奈~ 安装教程百度到的差不多都可以,找个格式正常的一步一步 ...
- 手机APP测试之monkey
Monkey测试是一种为了测试软件稳定性.健壮性的快速有效的方法,Monkey程序由Android系统自带,使用Java语言写成.本此由于公司APP产品所需,用monkey进行稳定性测试,下面将本次使 ...