背景:ORACLE查询当前资产状态,包含资产信息(表1),资产维修状态(表2),资产报废状态(表3)

如下:

资产信息:

资产维修:

资产报废:

资产申请完了以后可以申请当前资产的维修和报废,其中维修有两个流程,一个是申请维修,然后维修。对应的都需要启动相应的流程去申请维修或者报废

流程表如下:

查询当前所有的资产以及对应的资产状态(维修状态,报废状态):sql语句如下:

select t.ASSET_ID             as assetId,
       t.ASSET_NAME           as assetName,
       t.ASSET_SORT           as assetSort,
       t.ASSET_MODEL          as assetModel,
       t.BIRTH_DATE           as birthDate,
       t.INTERNATIONAL_NUMBER as internationalNumber,
       t.MANUFACTURER         as manufacturer,
       t.PURCHASE_DATE        as purchaseDate,
       t.NET_SALVAGE          as netSalvage,
       t.EXPECTED_YEAR        as expectedYear,
       t.NET_VALUE            as netValue,
       t.ORIGINAL_VALUE       as originalValue,
       t.DEPRECIATION_METHOD  as depreciationMethod,
       t.SERVICE_CONDITION    as serviceCondition,
       t.STOREMAN             as storeMan,
       t.REMARK               as remark,
       t.ADD_TYPE             as addType,
       t.PROCESSINSTANCEID    as processinstanceId,
       t.CUSTODY_DEPT         as custodyDept,
       t.USED_YEAR            as usedYear,
       t.ID                   as Id,
       m.status               as clearStatus,
       --  nn.status              as maintainStatus,
       (select a.status
          from (select a.asset_id, b.status
                  from asset_maintain a
                  join workflow.workflow_execution b
                    on b.processinstanceid = a.processinstanceid
                 order by b.create_time desc) a
         where a.asset_id = t.asset_id
           and rownum = 1) as maintainStatus
  from ASSET_INFO t
  left join (select *
               from ASSET_CLEAR c
               join workflow.workflow_execution n
                 on c.processinstanceid = n.processinstanceid) m
    on t.asset_id = m.asset_id

重点是这里:

领悟:子查询可以作为业务字段使用,同时可以根据当前主查询的表进行相关联,取出自己想要的数据

ORACLE查询当前资产状态,和另一个数据库联查,(查询重复数据中第一条),子查询作为字段查询的更多相关文章

  1. Oracle 查询出来的数据取第一条

    Oracle 查询出来的数据取第一条 --------------------------------------------------------------------------- 转载自:h ...

  2. Oracle取查询结果数据的第一条记录SQL

    Oracle取查询结果数据的第一条记录SQL: ; ;

  3. ORACLE清除某一字段重复的数据(选取重复数据中另一个字段时期最大值)

    需求:资产维修表中同一资产可能维修完继续申请维修,这时候维修状态需要根据最近的维修时间去判断维修状态,所以同一资产ID下会出现重复的数据(维修审批通过,维修审批未通过),或者可能不出现(未申请维修), ...

  4. oracle删除一个表内的重复数据,

    查询以及删除一个数据库表内的重复数据. 1.查询表中的多余的重复记录,重复记录是根据单个字段来判断的. select * from biao where id in (select id from b ...

  5. SQLSERVER 时间日期函数,查询今天日期、昨天、一个星期、半年前的数据

    今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0昨天的所有数据:select * from 表名 where D ...

  6. mysql语句删除重复数据,保留一条;查询所有重复数据;查询重复数据的一条,

    //显示重复的所有条 SELECT * FROM 表名 WHERE (字段1,字段2,...) IN (SELECT 字段1,字段2,...FROM 表名 GROUP BY 字段1,字段2,... H ...

  7. MySQL 数据库查询数据,过滤重复数据保留一条数据---(MySQL中的row_number变相实现方法)

    转自: http://www.maomao365.com/?p=10564 摘要: 下文讲述MySQL数据库查询重复数据时,只保留一条数据的方法 实现思路: 在MySQL数据库中没有row_numbe ...

  8. SQL Server查询分组结果中第一条记录的方法

    select * from (  select mp.MsgID,m.Content,m.CreatorID,m.CreateTime,ROW_NUMBER() over(partition by m ...

  9. 【Excle】在重复数据中对日期排序并查询最新的一条记录

    现在存在以下数据: 需要查询出以下数据 姓名       日期 张三       2017-12-14 李四       2017-12-16 在E1中写入以下公式:=IF(D2=MAX(IF($C$ ...

随机推荐

  1. codeforces 720A:Closing ceremony

    Description The closing ceremony of Squanch Code Cup is held in the big hall with n × m seats, arran ...

  2. Linux登录验证机制、SSH Bruteforce Login学习

    相关学习资料 http://files.cnblogs.com/LittleHann/linux%E4%B8%AD%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%E8%AE% ...

  3. FCKeditor漏洞利用

    FCKeditor漏洞利用 查看编辑器版本 FCKeditor/_whatsnew.html fckeditor/editor/dialog/fck_about.html —————————————— ...

  4. memcached 系列2:memcached实例(转载)

    在上一篇文章,我们讲了,为什么要使用memched做为缓存服务器(没看的同学请点 这里).下面让我们以memcached-1.2.1-win32版本的服务组件(安装后是以一个windows服务做dae ...

  5. C# 根据IP地址获取城市

    using System; using System.IO; using System.Net; using System.Text; using System.Web.Script.Serializ ...

  6. 什么是RST包,什么是三次握手,什么是四次握手 ---请进

    一.RST包.本人学习后总结:RST包用于强制关闭TCP链接. TCP连接关闭的正常方法是四次握手.但四次握手不是关闭TCP连接的唯一方法. 有时,如果主机需要尽快关闭连接(或连接超时,端口或主机不可 ...

  7. inno setup介绍及官方网站地址

    使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞 ...

  8. MySQL获取随机数

    如何通过MySQL在某个数据区间获取随机数? MySQL本身提供一个叫rand的函数,返回的v范围为0 <= v < 1.0. 介绍此函数的MySQL文档也介绍道,可以通过此计算公式FLO ...

  9. C#原始类型扩展方法—this参数修饰符

    扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用.对于用 C# 和 Visual ...

  10. Java面试宝典2015版(绝对值得收藏超长版)

    31.String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有? 没有.因为Str ...