oracle中max,listagg使用,需求:求门诊开甲功三项的病人的基本信息与化验结果的数据,...
自己的写法是:
select a.sampleno,a.patientname,a.patientid ,listagg(testresult,',')
within GROUP (order by testresult desc) abc
from bslis.l_patientinfo a,bslis.l_testresult b where a.sampleno =b.sampleno and a.examinaim='甲功三项'
group by a.sampleno ,a.patientname,a.patientid
这上面是lis的检验结果
lis中同一个样本号码对应三个testid然后是结果是分三条显示的,所以用了listagg然后就被动用了group by,所以打算lis与his信息union的话就比较难了
=======================================
select a.brid,mzhm,a.brxm,a.sfzh, xzz_qtdz, b.yz_z,b.yz_t, age,patientid from ms_brda a, ys_mz_jzls b ,l_lis_sqd c,ms_yj01 d
where a.brid=b.brbh and a.mzhm=c.patientid and c.doctrequestno=d.sqdh and d.jzxh=b.jzxh
and (b.yz_z is not null or b.yz_t is not null) and c.examinaim like '甲功三项' and c.bed_no is null
这是his的病人基本信息,lis与his都有patientid,打算Union ,上面提到union很难实现
=============================================================================
select brid,mzhm,brxm,sfzh,csny, xzz_qtdz,yz_z,yz_t,age,patientid,
max(FT3) FT3,max(FT4) FT4,max(TSH) TSH from (
select a.brid,mzhm,a.brxm,a.sfzh,csny, xzz_qtdz, b.yz_z,b.yz_t, c.age,c.patientid,
f.testresult,f.testid,
case when f.testid = 1111 then f.testresult else '' end FT3,
case when f.testid = 1112 then f.testresult else '' end FT4,
case when f.testid = 1113 then f.testresult else '' end TSH
from ms_brda a, ys_mz_jzls b ,l_lis_sqd c,ms_yj01 d ,
bslis.l_jytmxx e,bslis.l_testresult f
where a.brid=b.brbh and a.mzhm=c.patientid and
c.doctrequestno=d.sqdh and d.jzxh=b.jzxh
and (b.yz_z is not null or b.yz_t is not null) and
c.examinaim like '甲功三项' and c.bed_no is null and
e.sampleno = f.sampleno and c.doctrequestno = e.doctrequestno
)t
group by brid,mzhm,brxm,sfzh,csny, xzz_qtdz,yz_z,yz_t,age,patientid
========================
上面的
select a.brid,mzhm,a.brxm,a.sfzh,csny, xzz_qtdz, b.yz_z,b.yz_t, c.age,c.patientid,
f.testresult,f.testid,
case when f.testid = 1111 then f.testresult else '' end FT3,
case when f.testid = 1112 then f.testresult else '' end FT4,
case when f.testid = 1113 then f.testresult else '' end TSH
from ms_brda a, ys_mz_jzls b ,l_lis_sqd c,ms_yj01 d ,
bslis.l_jytmxx e,bslis.l_testresult f
where a.brid=b.brbh and a.mzhm=c.patientid and
c.doctrequestno=d.sqdh and d.jzxh=b.jzxh
and (b.yz_z is not null or b.yz_t is not null) and
c.examinaim like '甲功三项' and c.bed_no is null and
e.sampleno = f.sampleno and c.doctrequestno = e.doctrequestno
转载于:https://www.cnblogs.com/thomasbc/p/9710029.html
oracle中max,listagg使用,需求:求门诊开甲功三项的病人的基本信息与化验结果的数据,...相关推荐
- oracle中有关listagg函数的使用
oracle中有关listagg的使用 1. 作用 2. 语法 3. 实例 问题拓展 1. 作用 可以实现行转列,将多列数据聚合为一列,实现数据的压缩. 2. 语法 listagg(measure_e ...
- 10-205 在顾客表中查询顾客编号,公司名称和所在城市这三项内容
分数 3 全屏浏览题目 切换布局 作者 刘冬霞 单位 山东理工大学 在顾客表中查询顾客编号,公司名称和所在城市这三项内容 表结构: 顾客(顾客编号 文本型,公司名称 文本型,公司地址 文本型,城市 文 ...
- oracle中怎么判断为周五,求一年中所有星期五的日期
思路:首先求出一年中的第一天和最后一天,然后枚举出一年的日历,最后筛选出星期5的日期即可 -- 求出一年中的第一天和最后一天(这里是第二年的第一天,-1得到最后天)SQL> select tru ...
- oracle里的listagg,oracle中的listagg函数
listagg()用于字符串聚集 LISTAGG(XXX--要合并的列,XXX--分隔符) WITHIN GROUP( ORDER BY XXX) over(partition by XXX) 需要注 ...
- for oracle中pivot_oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】 | 学步园...
首先感谢提供Oracle的行列转换丝路!!! 原始表数据: 辅助思考: select usertelephone, max(decode(filedid, 1, answervalue, 0)) as ...
- hint oracle qbname_从才oracle中找到所有列名为BANK_ACC,且BANK_ACC=000的项,并将BANK_ACC=000000的项修改为BANK_ACC=111...
...我没有直接去更新你的表.你要看清楚我上面说的话 " ---如果该表有那内容的就打印那个表的update语句."declare l_cnt varchar2(20); v ...
- 在Oracle中使用脏读,ORACLE 事务处理
ORACLE事务整理: 1.为什么要有事务的存在? 对数据库的访问是一个多用户且存在高并发的操作,如多用户在某一时间点上对同一条数据实行更新操作,导致数据严重混乱.不一致.破坏了数据的完整和安全性. ...
- oracle中求差,Oracle计算月差
原先在一个计算费用的Oracle视图中用来计算月数的算法是只要求30天算一个月,于是只要总天数除以30就可以,在Oracle中用ceil函数取大于或等于两个日期相减结果的最小整数,即有小数就往上取整, ...
- 【数据库】Oracle中的复杂数据处理
在介绍了Oracle中的基本数据类型及相应的处理函数后,本章将介绍Oracle中较为复杂的数据处理. 接下来,本文将介绍: 1.利用聚合函数来统计数据: 2.常用技巧: 3.oracle中的基本运算: ...
最新文章
- 基于Springboot实现送水公司信息管理
- Linux+Apache+Postgresql+PHP安装Drupal7.15
- 线性回归数据_数据科学笔记(三)——线性回归
- 搭建Python+Eclipse开发环境
- leetcode1423. 可获得的最大点数
- React开发(259):react项目理解 ant design debug
- 的pcie带宽_新品推荐:乐扩PCIe四路SDI高清采集卡
- 服务器复制文件进程,服务器复制文件进程
- jvm lock低性能分析
- C++ String封装
- canvas绘制视频封面
- 关于C语言数组的输入与输出
- 计算机安全中心无法启动,如何解决Win10无法启动Windows安全中心服务问题
- ASP.NET Core 中文文档目录
- 基于最大似然估计与卡尔曼滤波的室内目标跟踪
- 计算机从加电到进入桌面,电脑开机一直停留在一个界面,我按操作进入了这个界面,接下来该肿么弄?...
- 虚幻引擎(3)-第三人称视角
- C语言笔记第02章:三大基本结构
- 读书笔记(三)--世界上最伟大的推销员
- 2018-08-11 自学笔记