Oracle group by 多表多字段关联查询

group by 多表多字段关联查询

自己遇到一个问题,就是开始的时候需要一个字段的名字和数量,但是是同个一个表的。

数据库代码如下:

select 

l.batchnum,count(l.batchnum) batcount   

from ts_outphone_list l join ts_outphone_batch b on l.batchnum=b.batchnum left join om_user_list om on l.datamanager=om.login_id left join ts_outphone_supplier tos on tos.id=om.suppliercode where b.ctime>‘2014-05-01‘  and b.ctime<‘2014-06-24 23:59:59‘  and tos.id=om.suppliercode 

group by l.batchnum;

现在我需要新添加一张表,并且需要查出一个新的字段。

想了很多方法,比如直接在select后面加这个新的字段,并且关联这张表但是都不能实现这个功能。

其实最关键的两句就是:

l.batchnum,count(l.batchnum) batcount

group by l.batchnum;

所以只要在group by 后面加上新的字段就可以查出你想要显示的新内容

select 

tos.suppliername,l.batchnum,count(tos.suppliername) batcount

from ts_outphone_list l join ts_outphone_batch b on l.batchnum=b.batchnum left join om_user_list om on l.datamanager=om.login_id left join ts_outphone_supplier tos on tos.id=om.suppliercode where b.ctime>‘2014-05-01‘  and b.ctime<‘2014-06-24 23:59:59‘  and tos.id=om.suppliercode 

group by tos.suppliername,l.batchnum;

只要在多关联一个字段就可以了

如果需要更多的表,自己添加就可以了

希望对你们有用

Oracle group by 多表多字段关联查询

时间: 2024-08-24 14:38:43

Oracle group by 多表多字段关联查询的相关文章

MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)

MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis)系列随笔之三:简单实现CRUD MyBitis(iBitis)系列随笔之四:多表(多对一查询操作) MyBitis(iBitis)系列随笔之五:多表(一对多关联查询) MyBitis(iBitis)系列随笔之六:mybitis与spring集成 这篇博文介绍的是多表中的一对多表关联查询还是按照上一

Linq中的group by多表多字段

按我的理解,linq与sql对应,只不过,一个对应在代码里,一个对应在数据库里.之所以要使用linq,是让分工越来越精细的程序员可以基本不管数据库这一块,只须关注代码即可. 不过,linq与sql还是会有一点区别.比如这个group by. 在sql中,如果有group by,那么select的字段只能包含分组内容,或者count.sum.avg这些统计字段. 但在linq里面,是:group 你想要什么字段 by 分组字段 比如: var q = from p in db.Products g

MySQL单表多字段模糊查询解决方法

在最近的一个项目需要实现在单表中对多字段进行多个关键字的模糊查询,但这数个关键字并不一定都存在于某个字段 例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍.然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录. 可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词.如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此

mysql搜索多表多字段模糊查询

select parttime_job_business_assessments.*, u.nick_name, u.mobile, pj.name as job_name, b.name as business_name from `parttime_job_business_assessments` left join `users` as `u` on `u`.`id` = `parttime_job_business_assessments`.`user_id` left join `p

Oracle中用一张表的字段更新另一张表的字段

今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而Oracle中就不知道方法了. SQL Server中类似问题的解决方法 后来只好用最笨的方法: 首先,将数据复制到Excel:(假设称测试库的表为A--含有数据) 然后,在开发库中建立和表A同结构的表B:(这里为了导入数据的简单,我对表B的结构进行了改造,只有两个字段) 图 表B的数据 再利用PL

Oracle的常用修改表及字段的语句

单行注释:-- 多行注释:/* */ Oracle中修改表结构 增加字段     ALTER TABLE table_name ADD column_name data_type; 删除字段     ALTET TABLE table_name DROP COLUMN column_name;修改字段类型     ALTER TABLE table_name ALTER COLUMN column_name new_data_type; 设置主键     ALTER TABLE table_na

Oracle中查看所有表和字段

获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * from user_tab_comments where Table_Name='用户表' order by Table_Name 获取字段注释: select * from user_col_comments where Table_Name='用户表' order by column_name /*

Linq中的group by多表多字段,Sum求和

var data = (from a in Items group a by new { a.GroupId, a.Id } into b orderby new ComparerItem() { GroupId = b.Key.GroupId, Id = b.Key.Id } descending select new { GroupId = b.Key.GroupId, Id = b.Key.Id, Count = b.Sum(c => c.Count), Weight = b.Sum(c

Oracle中查看所有表和字段以及表注释.字段注释

获取表: select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_