背景: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. POJ2492 A Bug's Life

    Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 33833   Accepted: 11078 Description Ba ...

  2. java导出txt文本

    页面 项目结构 html代码 <html> </head> <body> <form action="down/downLoad" met ...

  3. (原)java中对象复制、==、equals

    对于基本数据类型而言,即如下八种基本数据类型,int,boolean,char,byte,short,float,double,long. public class test { public sta ...

  4. UVA 1398 Meteor

    传送门 Solution: 记一颗流星在视野内的时间段为(L, R), 为了使所有(L, R)都取整数,首先将坐标放大. 放大倍数可取为 LCM(1, 2, ..., 10)= 2520 接着计算:从 ...

  5. ci中如何得到配置的url

    $this->load->helper('url'); 然后,你可以用它查询并返回设置在config.php文件中的site和/或base URL: echo site_url(); ec ...

  6. --hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)

    解题思路: 多重背包:第 i 件物品有 j 个可用. 本题中 第 p[i] 类大米 有 c[i] 袋大米可买 ,故本题为多重背包. n(总钱数).m(种类) p[i] 单价 h[i] 重量 c[i] ...

  7. tcpdump 时报ServFail 0/0/1 (97)

    ServFail           结合业务应该是dns   server fail 0/0/1               1/0/0表示机器号/槽位号/子接口号                 ...

  8. android TP驱动移植调试笔记(转)

    1. 添加I2C 设备 TP 一般采用的是I2C 作为数据和命令接口,所以TP 驱动也可以归类为I2C 驱动.TP驱动的主要逻辑不在这里,但是了解了Linux 的I2C 体系架构,就可以对整个驱动流程 ...

  9. 在表单(input)中id和name的区别

    但是name在以下用途是不能替代的: 1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制.因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是 ...

  10. C# 多线程通信详解

    一.WaitHandler的类层次 可以看到 WaitHandle是 事件(EventWaitHandle).互斥体(Mutex).信号量(Sempahore)的父类. WaitHandle我们最经常 ...