select b.a1 as 病房,    
b.a10 as 科长,   
sum(case when a.a3=1 then 1 else 0 end) as 爱滋病人数,
sum(case when a.a3=2 then 1 else 0 end) as 感冒人数,
sum(case when a.a3=3 then 1 else 0 end) as 骨折人数,
sum(1) as 合计,
max(a.a4) as 备注
from table1 a,table2 b
where a.a1=b.a1
group by b.a1,b.a10

解决方案 »

  1.   

    --好像上次寫過了吧?
    select table2.a1 as 病房,a10 as 科長,isnull(A.a2,0) as 愛滋,isnull(B.a2,0) as 感冒,isnull(C.a2,0) as 骨折
    ,合計=isnull(A.a2,0)+isnull(B.a2,0)+isnull(C.a2,0)
    ,備註= isnull(A.a4,'')+isnull(B.a4,'')+isnull(C.a4,'')
    from table2
    left join table1 A on A.a1=table2.a1 and A.a3=1
    left join table1 B on B.a1=table2.a1 and B.a3=2
    left join table1 C on C.a1=table2.a1 and C.a3=3