日期:2014-05-18  浏览次数:20587 次

继续请教“中国风”大侠
昨晚辛苦大侠了,在此表示感谢!那个帖子的地址是
http://topic.csdn.net/u/20111220/21/7e846993-545a-4258-afd3-fbb92b67325a.html

还有些问题没有解决:
我除了想统计每家医院,每个病种中有(未)取药记录的人数外,还得进行

某一月(如2001-1)某一家医院(如id为2)的所有病种中有(未)取药记录的人数的统计,该医院没有某病种是显示为0

我在好几个地方加了where,可都不行,还是查出来所有的结果。
不知该如何修改,求教了!

上次你写的代码如下:
SQL code

select 
    h.hospitalname,i.illTypeName,
    isnull(p.[有取药记录的人数],0) as [有取药记录的人数],
    isnull(p.[没有取药记录的人数],0) as [没有取药记录的人数]
from illType i 
Cross join hospital h
left join 
(select illtypeID1,p.hospitalid,
sum(case when P2.patientID is not null then 1 else 0 end) as [有取药记录的人数],
sum(case when P2.patientID is  null then 1 else 0 end) as [没有取药记录的人数]
from patient_info as p  left join payInfo as P2 on P2.patientID=p.patientID
group by illtypeID1,p.hospitalid
)p on p.illtypeID1 = i.illtypeID and h.hospitalid = p.hospitalid




------解决方案--------------------
patient_info這個表有沒有日期字段,在這個表加上就行了