背景: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. BZOJ3626 LCA

    Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. ...

  2. Fedora 20下配置samba服务器

    1 安装samba [root@localhost ~]# yum –y install samba   ← 通过网络安装samba yum -y install samba-client    // ...

  3. 如果你也和我一样,OSX反应慢,不妨试试这个

  4. C语言绘制余弦函数图象

    #include"stdio.h" #include"math.h" void main() { double y; int x,m; for(y=1;y> ...

  5. WPF 窗口在右下角出现,识别分辨率

    直接上代码. Point brp = SystemParameters.WorkArea.BottomRight;//当前桌面右下角的位置

  6. 解决在IE中返回JSON格式的数据时提示下载的问题

    如题,以ASP.NET MVC为例,解决办法如下: 控制器中: public JsonResult Test() { return Json(json, "text/html"); ...

  7. emmet-vim

    最近啊,我投奔了网页的开发,看了一本<head first HTML and CSS>的书,感觉非常不错,然后又配置了一些vim里面用到的插件,现在我把学习到的东西记录下来! 首先,我不会 ...

  8. PHP5.3中关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题

    转自:http://www.htmer.com/article/716.htm 最近在PHP官网上看到又有新版的PHP下载了,于是上去找找For Windows的版本,可是一看确傻眼了,一共给了四个版 ...

  9. 关于thinkphp 开发的网站部署问题

    公司一个网站用thinkphp 开发的,由wamp环境移植到lamp环境 出现错误.提示无法生成缓存文件. 原因是thinkphp 的一些目录需要重新生成,所以将一个新的thinkphp 核心包应用后 ...

  10. 登录DA面板出现:License has expired

    登录DA面板出现:License has expired的解决方法. 首先看是否过期,如果出现The license looks fine on this end. 登录 SSH as root # ...