bcxx(病床信息表)
SZBQ 所在病区,FJH 房间号,LBBM 类别编码,CWH 床位号,ZT 状态bclb(病床类别表)
LBBM 编码,BCLB 病床类别,RZYF 日住院费,RPHF 日陪护费zkzc(转科转床)
ZYH 住院号,ZRKS 转入科室,ZRBQ 转入病区,ZRBS 转入病室,ZRCH 转入床号,ZRRQ 转入时间bcxx1(包床信息)
ZYH 住院号,BCKS 包床科室,BQH 病区号,FJH 房间号,BCH 包床号,BCSJ 包床时间如果bcxx.zt='占用',那么从zkzc 表取出zyh
如果bcxx.zt='床包',那么从bcxx1表取出zyh (用一条查询语句)原语句:
select bcxx.szbq 所在病区,zkzc.zrks 所在科室,bcxx.fjh 房间号,bclb.bclb 病床类别,
bcxx.cwh 床位号,bcxx.zt 床位状态,zkzc.zyh 住院号,zkzc.zrrq 入住日期  
from bcxx left outer join zkzc on bcxx.cwh=zkzc.zrch
 and zkzc.zrrq in 
(select max(zrrq) from zkzc,bcxx 
where bcxx.cwh=zkzc.zrch and bcxx.zt='占用' group by zyh 
union 
select bcsj from bcxx1,bcxx 
where bcxx.cwh=bcxx1.bch and bcxx.zt='包床'),bclb 
where bcxx.lbbm=bclb.lbbm order by cwh查询结果:
所在病区|所在科室|房间号|病床类别|床位号|床位状态|住院号              |入住日期
36       74       1-1    普通     01     占用     ZY-028-20041024-0001 2004-10-28 15:55:10
36       NULL     1-1    普通     02     包床     NULL                 NULL
36       NULL     2-1    普通     03     空床     NULL                 NULL
36       NULL     2-1    普通     04     空床     NULL                 NULL
39       74       2-2    特别护理 05     占用     ZY-028-20041024-0002 2004-10-28 15:52:48(注:"包床"表示陪住,02床为01床的陪住,而02床的zyh没有查出来)需要结果:
所在病区|所在科室|房间号|病床类别|床位号|床位状态|住院号              |入住日期
36       74       1-1    普通     01     占用     ZY-028-20041024-0001 2004-10-28 15:55:10
36       74       1-1    普通     02     包床     ZY-028-20041024-0001 2004-10-28 17:55:10
36       NULL     2-1    普通     03     空床     NULL                 NULL
36       NULL     2-1    普通     04     空床     NULL                 NULL
39       74       2-2    特别护理 05     占用     ZY-028-20041024-0002 2004-10-28 15:52:48

解决方案 »

  1.   

    以前也是做HIS的,看了有点亲切:)
      

  2.   

    select bcxx.szbq 所在病区,zyh1.zrks 所在科室,bcxx.fjh 房间号,bclb.bclb 病床类别,
    bcxx.cwh 床位号,bcxx.zt 床位状态,zyh1.zyh 住院号,zyh1.zrrq 入住日期  
    from bcxx left outer join 
    (select zyh,zrrq,zrks,zrch from zkzc union 
    select zyh,bcsj,bcks,bch from bcxx1) zyh1 
    on bcxx.cwh=zyh1.zrch and zyh1.zrrq in 
    (select max(zrrq) from zkzc,bcxx 
    where bcxx.cwh=zkzc.zrch and bcxx.zt='占用' group by zyh union 
    select bcsj from bcxx1,bcxx 
    where bcxx.cwh=bcxx1.bch and bcxx.zt='包床'),bclb 
    where bcxx.lbbm=bclb.lbbm order by cwh