自己的写法是:

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使用,需求:求门诊开甲功三项的病人的基本信息与化验结果的数据,...相关推荐

  1. oracle中有关listagg函数的使用

    oracle中有关listagg的使用 1. 作用 2. 语法 3. 实例 问题拓展 1. 作用 可以实现行转列,将多列数据聚合为一列,实现数据的压缩. 2. 语法 listagg(measure_e ...

  2. 10-205 在顾客表中查询顾客编号,公司名称和所在城市这三项内容

    分数 3 全屏浏览题目 切换布局 作者 刘冬霞 单位 山东理工大学 在顾客表中查询顾客编号,公司名称和所在城市这三项内容 表结构: 顾客(顾客编号 文本型,公司名称 文本型,公司地址 文本型,城市 文 ...

  3. oracle中怎么判断为周五,求一年中所有星期五的日期

    思路:首先求出一年中的第一天和最后一天,然后枚举出一年的日历,最后筛选出星期5的日期即可 -- 求出一年中的第一天和最后一天(这里是第二年的第一天,-1得到最后天)SQL> select tru ...

  4. oracle里的listagg,oracle中的listagg函数

    listagg()用于字符串聚集 LISTAGG(XXX--要合并的列,XXX--分隔符) WITHIN GROUP( ORDER BY XXX) over(partition by XXX) 需要注 ...

  5. for oracle中pivot_oracle关键字pivot行转列【坑爹的三小时,动脑经真累 】 | 学步园...

    首先感谢提供Oracle的行列转换丝路!!! 原始表数据: 辅助思考: select usertelephone, max(decode(filedid, 1, answervalue, 0)) as ...

  6. hint oracle qbname_从才oracle中找到所有列名为BANK_ACC,且BANK_ACC=000的项,并将BANK_ACC=000000的项修改为BANK_ACC=111...

    ...我没有直接去更新你的表.你要看清楚我上面说的话 " ---如果该表有那内容的就打印那个表的update语句."declare l_cnt    varchar2(20); v ...

  7. 在Oracle中使用脏读,ORACLE 事务处理

    ORACLE事务整理: 1.为什么要有事务的存在? 对数据库的访问是一个多用户且存在高并发的操作,如多用户在某一时间点上对同一条数据实行更新操作,导致数据严重混乱.不一致.破坏了数据的完整和安全性. ...

  8. oracle中求差,Oracle计算月差

    原先在一个计算费用的Oracle视图中用来计算月数的算法是只要求30天算一个月,于是只要总天数除以30就可以,在Oracle中用ceil函数取大于或等于两个日期相减结果的最小整数,即有小数就往上取整, ...

  9. 【数据库】Oracle中的复杂数据处理

    在介绍了Oracle中的基本数据类型及相应的处理函数后,本章将介绍Oracle中较为复杂的数据处理. 接下来,本文将介绍: 1.利用聚合函数来统计数据: 2.常用技巧: 3.oracle中的基本运算: ...

最新文章

  1. 基于Springboot实现送水公司信息管理
  2. Linux+Apache+Postgresql+PHP安装Drupal7.15
  3. 线性回归数据_数据科学笔记(三)——线性回归
  4. 搭建Python+Eclipse开发环境
  5. leetcode1423. 可获得的最大点数
  6. React开发(259):react项目理解 ant design debug
  7. 的pcie带宽_新品推荐:乐扩PCIe四路SDI高清采集卡
  8. 服务器复制文件进程,服务器复制文件进程
  9. jvm lock低性能分析
  10. C++ String封装
  11. canvas绘制视频封面
  12. 关于C语言数组的输入与输出
  13. 计算机安全中心无法启动,如何解决Win10无法启动Windows安全中心服务问题
  14. ASP.NET Core 中文文档目录
  15. 基于最大似然估计与卡尔曼滤波的室内目标跟踪
  16. 计算机从加电到进入桌面,电脑开机一直停留在一个界面,我按操作进入了这个界面,接下来该肿么弄?...
  17. 虚幻引擎(3)-第三人称视角
  18. C语言笔记第02章:三大基本结构
  19. 读书笔记(三)--世界上最伟大的推销员
  20. 2018-08-11 自学笔记

热门文章

  1. python 微服务框架_Python微服务框架NameKo 性能体验
  2. java中explore_Java ServerPlayer.exploreMap方法代码示例
  3. 简单mysql 查询_简单的mysql查询
  4. zynq7000 clk 设备树时钟对照表
  5. Rust 交叉编译设置
  6. FPGA之道(62)时空变换之空间换时间
  7. FPGA block RAM和distributed RAM区别(以及xilinx 7系列CLB资源)
  8. wifiphisher 钓鱼工具的使用
  9. 1.5 Kali Linux策略
  10. LAMP 架构深度优化记录