如下最简单,就地取材。
Select dph1,sum(ds) from 
(
select dph1,sum(ds1) as ds
from dex1
group dph1
having bz='正常'
union allselect dph2,sum(ds2)
from dex1
group dph2
having bz='正常'
union allselect dph3,sum(ds3)
from dex1
group dph3
having bz='正常'
) temp
group by dph1