一个很变态的SQL

select max(s.operat_time) as pzTime
  from ws_state_record s
 where s.status = (select p1.node_id
                     from WS_PROCESS p1
                    where p1.role_id =
                          (select max(p2.role_id)
                             from WS_PROCESS p2
                            where p2.node_id in (10001,10002)))//业务表流程足迹
   and s.operat_orgtype = ‘review‘

//------------------------测试01 --------------------------------
select  t.id,
        substr(t.team_id, 2, 4) as a,
       substr(t.team_id, 7, 4) as b,
       d.name as team_type_text,
       t.throughnodes,
       (select max(s.operat_time) as pzTime
  from ws_state_record s
 where s.status =
       (select p1.node_id
          from WS_PROCESS p1
         where p1.role_id =
               (select max(p2.role_id)
                  from WS_PROCESS p2
                 where p2.node_id in (t.throughnodes))) and s.bizdata_id = t.id
   and s.operat_orgtype = ‘review‘) as pz_time

  from WS_TEAM_INFORMATION t
  left join DICT d
    on t.team_type = d.code

---------------------------------------------------------
select max(s.operat_time) as pzTime
  from ws_state_record s
 where s.status =
       (select p1.node_id
          from WS_PROCESS p1
         where p1.role_id =
               (select max(p2.role_id)
                  from WS_PROCESS p2
                 where p2.node_id in ( SELECT SUBSTR(throughnodes,0,INSTR(throughnodes,‘,‘)-1) FROM ws_team_information
  UNION
  SELECT SUBSTR(throughnodes,INSTR(throughnodes,‘,‘,1,ROWNUM)+1,5)
  FROM ws_team_information
  CONNECT BY ROWNUM<=LENGTH(throughnodes)-LENGTH(REPLACE(throughnodes,‘,‘,‘‘)))))
   and s.operat_orgtype = ‘review‘

-----------------------------------------最终版---------------------------------------------
select m1.id, m2.pzTime
  from (select t.id,
               substr(t.team_id, 2, 4) as a,
               substr(t.team_id, 7, 4) as b,
               t.throughnodes,
               d.name as team_type_text
          from WS_TEAM_INFORMATION t
          left join DICT d
            on t.team_type = d.code) m1
  left join

 (select s.bizdata_id, max(s.operat_time) as pzTime
    from ws_state_record s
   where s.status =
         (select p1.node_id
            from WS_PROCESS p1
           where p1.role_id =
                 (select max(p2.role_id)
                    from WS_PROCESS p2
                   where p2.node_id in
                         (SELECT SUBSTR(throughnodes,
                                        0,
                                        INSTR(throughnodes, ‘,‘) - 1)
                            FROM ws_team_information
                          UNION
                          SELECT SUBSTR(throughnodes,
                                        INSTR(throughnodes, ‘,‘, 1, ROWNUM) + 1,
                                        5)
                            FROM ws_team_information
                          CONNECT BY ROWNUM <=
                                     LENGTH(throughnodes) -
                                     LENGTH(REPLACE(throughnodes, ‘,‘, ‘‘)))))
     and s.operat_orgtype = ‘review‘
   group by s.bizdata_id) m2
    on m1.id = m2.bizdata_id

嘻嘻

时间: 2024-09-29 23:05:53

一个很变态的SQL的相关文章

看到一个很牛的SQL,记录一下

--将表数据生成SQL脚本的存储过程 CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @columndata varchar(1000) declare @sql varchar(4000) declare @xtype tinyint declare @name sysname declare @objectId int declare @objectn

查询oracle sql的执行计划时,一个很重要的视图--dba_hist_sql_plan

本文的编写得到枯荣长老的大力帮助,在此表示感谢. 本文适用的oracle db版本为oracle 10g或者更高版本. 之所以说这个视图很重要,是因为该视图中有一列是在awrsqrpt报告中没有的.这一列就是 filter_predicates列. SELECT plan_hash_value, TO_CHAR(RAWTOHEX(child_address)), TO_NUMBER(child_number), id, LPAD(' ', DEPTH) || operation operatio

Mybatis_reveiw之Mybatis官方的一个很简单的Demo

上学的时候,一个老师讲了个故事,这个故事的大意是,我们有很多种方式去削苹果,第一种方式,使用指甲刀,第二种方式,使用机床,第三种方式,使用手摇的那种削平果小工具.我们当然都能够完成这个简单的需求,但是使用指甲刀削出来的苹果一定比较坑坑洼洼,不够美观,而且可能会让人感觉到有点没啥食欲.使用机床呢?可能会造成大量的浪费,原本一个美观大方的苹果变成了只能啃几口的正方形.第三个,因为是专门为了削苹果皮而设计的,理论上是最合适用来解决削苹果这个问题的解决方案. 一个好的架构,其实要做的事情是非常简单的,除

执行计划之误区,为什么COST很小,SQL却跑得很慢?

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/38321477 2014.7.31就晚20:30 My Oracle Support组猫大师在线分享<执行计划之误区,为什么COST很小,SQL却跑得很慢?>如需了解更多请登录网站http://www.jianfengedu.com/Discuz/detail/id/58 +++我给你看个东西. ----------------------------------------------

从一个小例子认识SQL游标

原文:从一个小例子认识SQL游标 1    什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理. 这些应用程序需要一种机制以便每次处理一行或一部分行. 游标就是提供这种机制的对结果集的一种扩展. 游标通过以下方式来扩展结果处理: 允许定位在结果集的特定行. 从结果集的当前位置检索一行或一

分享一个通用的分页SQL

又很久没写博客,今天记录一个SQLserver通用分页存储过程(适用于SqlServer2000及以上版本) 1.支持连表 2.支持条件查询 USE [MYDB] GO /****** Object:  StoredProcedure [dbo].[SP_CommonPage] SET QUOTED_IDENTIFIER ON GO ------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: ---------------

一个很糟糕的写法 这是在犯罪

功能说明:提交订单之后,增加消费记录,扣除用户余额 //更新积分值 public function saveMoney($uid, $money, $remark, $paymment, $chargetypes, $orderno, $status) { $sql = "UPDATE $this->_member_list SET money=money+$money WHERE uid=$uid"; $row = $this->exec ( $sql ); //增加历史

一个很实用的前端框架Zui

杰哥给我推荐了一个很有用的前端框架-Zui,我看着觉得很神奇的,因为有很多我都不懂.在这里分享总结一下.首先,这是一个中国自己开发的框架,比起很多外国的框架来说,有很详细的API,而且是全中文的,不需要再经过其他人的翻译了.然后,它的内容十分丰富,很系统的分为了:基础,控件,组件,JS插件,视图几大块:而且使用起来,只需要导入js,在适当的地方加上正确的class类就可以了.对于,没有什么js基础的人,也是十分容易上手的.下面我就大体的介绍一下它的各个模块的功能.基础:基础里面我觉得很有用的主要

第一次作业:假装这里有一个很响亮的标题

---恢复内容开始--- 一.结缘计算机 缘分可以说是一个很奇妙的东西,喜欢一件事物往往从对它的美好幻想开始.相信许多人想到计算机都会将它与玩游戏联系在一起,对于我却不然,在我看来编程是一个创造的过程--这就是我对于计算机最初的美好幻想.试想通过编写一些代码便能够实现自己心中所想,这难道不是一件令人兴奋的事吗?它执行你的指令,完成你的任务,实现你的想法,这在当时是对我非常有吸引力的,于是我第一志愿便填报了计算机专业. 你认为你的条件如何?其实我并不知道这个问题应该如何回答,物质条件?素质方面?条