oracle查询计划信息,如何分隔关联查询?

现要查询计划表信息,和组织权限相关联,目前sql
T_TRAIN_PLAN 表结构
图片说明

图片说明
t_employee_organization_ref表结构
图片说明
图片说明

 select *
  from (select distinct t.plan_name,
                        t.plan_code,
                        t.begin_date,
                        t.end_date,
                        t.id,
                        t.status,
                        t.verify,
                        t.isDel,
                        ROWNUM RN
          from (select t.plan_name,
                       t.plan_code,
                       t.begin_date,
                       t.end_date,
                       t.id,
                       t.status,
                       t.verify,
                       row_number() over(order by create_time desc) as seqnum,
                       (select count(1)
                          from t_train_session ts
                         where ts.plan_id = t.id
                           and ts.train_begin_time < sysdate) isDel
                  FROM (SELECT *
                          FROM (SELECT t.store_id,
                                       t.plan_name,
                                       t.plan_code,
                                       t.begin_date,
                                       t.end_date,
                                       t.id,
                                       t.status,
                                       t.verify,
                                       create_time,
                                       t.remark  mark
                                  FROM T_TRAIN_PLAN t
                                 where t.status in ('0', '2') and t.remark is not null ) t,
                               t_employee_organization_ref a 
                         where t.store_id = a.unit_id  
                           and a.employee_code = 'admin') t) t
         where seqnum <=10
         order by t.begin_date desc)
 where rn > 0;


 抽取主体也就是

  SELECT *
                          FROM (SELECT t.store_id,
                                       t.plan_name,
                                       t.plan_code,
                                       t.begin_date,
                                       t.end_date,
                                       t.id,
                                       t.status,
                                       t.verify,
                                       create_time,
                                       t.remark  mark
                                  FROM T_TRAIN_PLAN t
                                 where t.status in ('0', '2') and t.remark is not null ) t,
                               t_employee_organization_ref a 
                         where t.store_id = a.unit_id  
                           and a.employee_code = 'admin'    

目前的业务是,当创建计划时,Store_id可以选择多个, 保存的时候,如果store_id是多个,则保存在了remark字段中,如果只是一个保存在store_id字段中, 那么问题
来了,如果store_id是多个,已逗号分隔的形式保存在了remark字段中,我怎么和t_employee_organization_ref 组织权限表关联啊? 并且查找出计划信息。。。

1

3个回答

SELECT t.*
FROM t_train_plan t
INNER JOIN t_employee_organization_ref a
ON (','|| t.remark ||',' LIKE '%,'|| a.unit_id ||',%'
OR t.store_id = a.unit_id)
AND t.status IN ('0', '2')
AND a.employee_code = 'admin';

--REMARK多个store_id,一条t_train_plan记录在结果中可能有多条
--语句未实际测试
--另外,贴中语句嵌套层次太多,建议尽量避免子查询!

0
apbbbbb
旋转的钢笔 谢谢!
大约一年之前 回复

没用过Oracle,用SQLserver多,一个公司总会有相似,试试用逗号或者外链接

0

建议你换个 角度来分析这个问题。怎么能用这么多的嵌套呢。建议你优化下sql语句吧。 不妨你你的这个表和需求发出来,让大家帮你出sql 也可以。现在的这个嵌套太多,在怎么优化 效率也难以提上去。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
查询计划请求信息
SELECT fcr.request_id "请求ID", fcpv.user_concurrent_program_name "请求名称", fcpv.concurrent_program_name "请求简称", frv.responsibility_name "职责", fcr.argument_text "参数", fu.user_name "提交人", fcr.status_
oracle 关联查询 查询自身表
oracle 关联查询 查询自身表
Oracle查询计划资料
推荐:http://wenku.baidu.com/view/7713b4c708a1284ac85043c1.html
oracle 中字符串分隔查询
如: 1,汽车Arn 1,汽车Brn 2,货车Arn 2,货车Brn怎么查询出 结果是 汽车A,汽车B.. rn谢谢哈rn
查询EBS计划请求信息
SELECT fcr.request_id “请求ID”, fcpv.user_concurrent_program_name “请求名称”, fcpv.concurrent_program_name “请求简称”, frv.responsibility_name “职责”, fcr.argument_text “参数”,
查看oracle的查询计划命令
sql&gt; set autot trace sql&gt; select owner, object_name from   2  (select a.*, rownum as rn from   3  (select owner, object_name, rowid from t_test1 order by owner, object_id) a   4  where rownum = 11...
Oracle 关联查询
目录 笛卡尔积 隐式内连接 显式内连接 左/右外连接 子查询 exists 查询 rownum 行号 union 并集运算 minus 差集运算 集合运算注意事项 笛卡尔积 1、两张表数据的乘积,实际基本用不上,只是助于理解。 select * from emp;--查询所有员工 select * from dept;--查询所有部门 select * from emp...
如何进行两个查询的关联查询
说明:1、开发的是ASP数据提交和汇总功能的网页,rn 2、采用的是ACCESS做数据库。rn需求:rn查询1:select a,sum(b),sum(c) from table1 group by arn查询2:select a,sum(b),sum(c) from table1 where table1.riqi=#2010-1-1# group by arn生成一个包含查询1的sum(b)减去查询2中的sum(b)结果,并以a分组的记录集,从而达到在网页中生成数据汇总计算的表格。rnrn关键是如何写出这个需求的查询语句?请各位帮忙啊!rn
如何看查询计划
我们通常比较两个查询的效率时用执行计划是如何比较出来的?rn查询计划是怎么看出来拿个查询比较快,拿个比较慢
Oracle中如何分隔字符串?
就如JAVA中的split()方法一样,一个字符串以","间隔作为参数传入存储过程。rn要在存储过程中进行分割,然后在操作。rnrn谢谢谁能告诉我呀?
oracle查询树信息
oracle查询树信息 项目中经常有树结构,如组织、类别等。一般表中有父节点字段,需要查询类型有: - 展示整个树 - 显示所有子节点 - 显示所有祖先节点 应用常规的查询,需要查询多次,oracle提供了查询方法,可以非常简洁直接查询,下面通过示例说明。 示例表结构 Employee ------------- ID (int) FirstName (varchar) La...
Oracle 内存信息查询
SGA是系统全局区,是Oracle中可以共享的内存。 1.查看SGA的信息 ---查看SGA信息 show sga select * from v$sga ; select * from v$sgainfo ; Fixed Size 是固定区域,用于存储SGA各组件的信息。固定区域的大小随平台和版本而变化。 Variable Size  是可变区域,包括共享池、Java池、大池。...
Oracle表空间信息查询
--Oracle表空间信息查询 --DBA_* 描述的是数据库中的所有对象 --ALL_* 描述的是当前用户有访问权限的所有对象 --USER_* 描述的是当前用户所拥有的所有对象 --表名带有“DBA”的需要有DBA权限才能访问 --查询oracle表空间信息 SELECT * FROM DBA_TABLESPACES T; SELECT * FROM USER_TABLESPACES T; ...
oracle当天信息查询
麻烦问下,要求只查询当天9:00-21:00的信息。数据库是ORACLEn[b]问题补充:[/b]n先谢谢大家,补充下:rn你们提供的方法我之前就写了,但是有问题。rn我的语句:rnselect * from A where to_char(sysdate,'hh24:mi') between '09:00' and '21:00' rnrn这样查出来的记录有问题,检索出的记录包括了 所有9:00-21:00的信息,比如(2009-7-1 9:41分的记录)
查询Oracle 信息
select * from user_tables; select * from user_views; select * from user_sequences; select * from user_triggers;
Oracle锁信息查询
--Oracle锁信息查询 --查询oracle会话信息 SELECT * FROM V$SESSION T ORDER BY t.&quot;LOGON_TIME&quot;; --查询oracle等待的会话信息 SELECT * FROM V$SESSION_WAIT T ORDER BY t.&quot;SECONDS_IN_WAIT&quot; DESC; --查询oracle所有的锁 SELECT * FROM V$LOCK ...
查询Oracle数据库表的信息
查找oracle数据库中共有多少个表 select count(object_name) from user_objects where lower(object_type)='table'       每个表叫什么名字 select object_name from user_objects where ...
oracle 查询外键含有逗号分隔的数据
方式一、逗号分隔字段转化为行在做关联查询,查询结果出来再行转列转回去 例子: select ---员工id T3.id, --员工编号 T3.staff_code, --用户(电话) T3.phone, --姓名 T3.staff_name, --身份证号 T3.USER...
如何查询Oracle表空间和数据文件信息
附图直观 整理成文档,方便您保存! ------------------------------------------- 一、查看Oracle数据库中表空间信息的方法 1、查看Oracle数据库中表空间信息的工具方法 2、查看Oracle数据库中表空间信息的命令方法 二、查询Oracle数据库中数据文件信息的方法 1、查看Oracle数据库中数据文件信息的工具方法 2、查看Oracle数据库中数据文件信息的命令方法 三、查看临时表空间和数据库文件的方法
Impala收集统计信息及生成查询计划
本次课程让学员全面系统地学习大数据平台运维,开发的操作。课程内容涉及到大数据生态系统的各项工具,内容全面,讲解细致,助您全面掌握大数据平台运维及开发工具的作用
关联查询分步查询&延迟加载
<p>rn <br />rn</p>rn<p>rn <p>rn 20周年限定一卡通!<span style="color:#337FE5;">可学Java全部课程</span>,仅售799元(原价7016元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn<span>&nbsp;</span> rn<p>rn <br />rn</p>rn针对企业开发的主流框架进行讲解,注重理论和实践的结合,课程内容深入源码,讲解深入浅出,每个技术点都配备具有典型性和实用性的案例及代码。使学生具备开发企业级项目的能力,同时针对框架新特性也有讲授,通过这些新功能实用性强、易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅性。
SQL 基础查询 关联查询
--SELECT用于指定要查询的列--FROM子句指定从哪个表中查询如果要查询所有列,可以在SELECT后面使用 * 号。如果只查询特定的列,可以直接在SELECT后面指定列名,列名之间用逗号隔开。使用别名:在SQL语句中可以通过使用列的别名改变标题的显示样式,或者表示计算结果的含义。使用语法是列的别名跟在列名后,中间可以加或不加一个&quot;AS&quot;关键字。如果希望别名区分大小写字符,或者别名中包含字符或...
mongo 聚合查询 关联查询
1.$match 数据过滤类似于mysql中的 where 及 having 对文档数据状态进行状态过滤(100, -100) 关键字($match) db.getCollection('account').aggregate([ {"$match":{"state":{"$in":[100, -100]}}}, {"$group": {"_id": "$gid"}} ]) ...
sequelize-----关联查询与批量查询
之前的文章说了sequelize对于事物的处理,包括说自动提交的事务以及手动提交回滚的事物。而对于java来说事务相对来说用起来简单一些,个人是这样认为的。 这次来说一下关联查询与批量查询: 都知道,关联关系主要有三种:一对一,一对多,多对多,我记得javayou一个批量的方法就是addbatch进行批量的操作,言归正传sequelize对于一对一的处理你可以用find相关的方法比如说:fin...
Oracle篇--03 Oracle SQL(基础查询)、SQL关联查询
1.SELECT子句SELECT子句中可以使用函数或表达式,那么结果集中对应的该字段名就是这个函数或表达式,可读性较差,为此可以为这样的字段添加别名,那么结果集会以这个别名作为该字段的名字。SELECT name,salary*12 sal FROM employ_lcz;2.WHERE子句SELECT *FROM employ_lcz WHERE DEPTNO=10; SELECT name,...
MySQL查询(关联查询)
一、mysql查询与权限 (一)数据库关联查询 **内连接查询(inner join)** 查询两个表共有的数据,交集 SELECT * FROM tb1 INNER JOIN tb2 ON 条件 所有有宿舍的学员 左表查询(左关联查询)(left joi...
关联查询和分开查询的选择?
假设有如下情况:rn1、数据库为Oracle和MS SQLServer两种可能rn2、有A、B、C 共3张表rn3、其中A.id=B.a_id,B.id=C.b_id(其中A.id,B.id均为varchar[20])rn4、A和B是1对多,B和C是1对多的关系rn5、A表约有400万行,B表约有500万行,C表约有1200万行数据rn6、A.id,B.id,C.id为主键rn7、B.a_id,C.b_id上有普通索引rnrn目标:rn要取得如下字段的值rnA.id,A.field2,A.field3,A.field4,rnB.id,B.field2,B.field3,B.field4,rnC.id,C.field2,C.field3,C.field4rn假设数据库中A.id='100203914'的记录(结果集不会超过50条)rnrn现在有2种查询方法:rn1、直接进行关联查询rnselectrnA.id,A.field2,A.field3,A.field4,rnB.id,B.field2,B.field3,B.field4,rnC.id,C.field2,C.field3,C.field4rnfrom A,B,C where A.id=B.a_id and B.id=C.b_idrnand A.id='100203914'rnrn2、分开查询rna. select A.id,A.field2,A.field3,A.field4 where A.id='100203914';rnb. select B.id,B.field2,B.field3,B.field4 where B.a_id='100203914';rnc. select C.id,C.field2,C.field3,C.field4 where C.b_id in (步骤b的结果);rnrn上面2种,在什么情况下哪种执行效率高?
MyBatis关联查询之一对一查询
关联查询一对一查询是最基础的关联查询知识,何谓一对一。比如本文要讲到的例子,学生去图书馆借书的例子,有一个表叫做tb_user表示学生的信息,另一个表表示tb_book,那么假定每个人只能借一本书,那么两个表之间的关系就是一对一的,即一本书只能借给一个人,一个人只能借一本书。所以相对来说,一对一的关联查询,逻辑比较清晰,容易理解。我们接下来通过两种方法进行讲解一对一的关联查询。 1.示例简介
关联查询查询问题
[color=#FF0000]在此先谢谢pt1314917的指点[/color]rnrnselect PLUSN=isnull(PLUSN,'总计'),SALEQTY=sum(SALEQTY),saleincount=sum(saleincount),SALECOUNT=sum(SALECOUNT)rnfrom [SA_SUMSALEDETAIL]rnWHERE (SA_SUMSALEDETAIL.VENID='0003') AND (SA_SUMSALEDETAIL.SALEDATE BETWEEN '2009-01-10' AND '2009-01-15') rn group by PLUSN with rolluprnrn查询出来的数据与另一表BA.INFO关联,通过BA.INFO.PLUSN=SA_SUMSALEDETAIL.PLUSN查询出每一个的详细信息~~rn关联语句怎么实现呢???rn
当日订餐查询(关联查询)
本课程从零开始详细讲解struts2的相关知识,结合案例深入浅出
关联查询association分步查询
<p>rn <p>rn 20周年限定一卡通!<span style="color:#337FE5;">可学Java全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn<p>rn <br />rn</p>rn<p>rn 本阶段Java视频教程涵盖JavaWEB 企业级开发所需的Servlet、JSP、MVC 设计模式、EL 表达式、JavaBean、国际化、Cookie和HttpSession、JavaMail等核心技术。并通过书城案例,巩固知识,提供开发能力。rn</p>
34、参数查询和关联查询
学习目标: 1、掌握使用hql的参数查询方式 学习过程: 一、参数查询 1、使用? 在条件查询中我们查询条件都是通过方法的参数设置的,为了提高安全性,我们很少使用字符串拼接的方式,所以在学习jdbc的时候我们使用PreparedStatement,然后使用?进行代参的方式,Query和PreparedStatement有点类似,也是支持这种方式的。同时hql也支持想大于,等于或者in等等...
MyBatis关联查询之一对多查询
一对多的关系就是指第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。就如同借书,假设某个人一年内只借了一本书,并且借了好几次,那么这个人就会对应着好多条借书记录,但是每条借书记录只会对应着一个人,因为一本书不可能同时借给两个人,这就是一对多的关系。本文还是举借书的例子,在一对一查询基础上进行改进的,如有需要可以两篇文章一起看。 1.涉及的数
[Oracle]: Oracle 分隔字符串方法
Function /** * Split the string according to the separator. * * @param I_VALUES: String is divided * @param I_SEPARATOR: Separator * @return ARRAY_STRING: String array */ CREATE OR REPLACE FU
oracle多表关联查询
内连接 A表与B表进行关联查询,查询出A表的name字段与B表的name字段相等条件。 SELECT a.*,b.* FROM A a INNER JOIN B b ON a.Name = b.Name 外连接 左外联:以左表为主表,右表为从表,查询出A表所有的name值并且关联B表的name,如果B表没有与A表相同的name值,那么 就用空代替。 SELECT a.*,b.* FRO
oracle关联查询与子查询例子
oracle关联查询与子查询例子
Oracle多表关联查询
在实际的应用系统开发中会涉及多个数据表,每个表的信息不是独立存在的,而是若干个表之间的信息存在一定的关联,这样当用户查询某一个表的信息时,很可能需要查询关联表的信息,这就是多表关联查询。 1、内连接 内连接是一种常见的多表关联查询方式,一般使用关键字INNER JOIN来实现。其中,INNER关键字可以省略,当只使用JOIN关键字时,语句只表示内连接操作。在使用内连接查询多个表时,必须在FRO
SQL关联查询--Oracle(四)
关联查询 从多张表中查询对应记录的信息 关联查询的重点在于这些表中的记录的对应关系,这个关系也称为连接条件 查看每个员工的名字以及其所在部门的名字 SELECT ename dname FROM emp,dept WHERE emp.deptno=dept.deptno; 使用别名 当两张表有同名字段时,SELECT子句中需明确指定该字段来自那张表。在关联查询中,表名也可以...
ORACLE 关联查询的区别
如果有两个SQL指令rnA1: SELECT T1.*,T2.* FROM TABLE1 T1,TABLE2 T2 WHERE T1.ID=T2.IDrnA2: SELECT T1.* ,T2.* FROM TABLE1 T1 INNER JOIN TABLE2 T2 ON T1.ID=T2.IDrnrnA1和A2两个查询指令那个更好些,为什么啊?
Oracle中简单的关联查询
[img=https://img-bbs.csdn.net/upload/201507/24/1437741437_798453.jpg][/img]rnrn请看清题目要求再做 O(∩_∩)O
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合