select bxdw,
(zje - tpzje) pk,
tpfy,
(sm - tpsm) yx,
tpsm,
(zje - tpzje + tpfy) zje
from (select bxdw,
sum(zjje) zje,
sum(decode(sftp, 1, zjje, 0)) tpzje,
sum(tpfy) tpfy,
count(*) sm,
nvl((select count(*)
from CWXT_JPDG_B_YDXX
where sftp = 1
and bxdw = ydxx.bxdw),
0) tpsm
from CWXT_JPDG_B_YDXX ydxx
group by ydxx.bxdw)
其中sql的 decode函数 decode(sftp,1,zjje,0) 意思为如果sftp 的值为1 则返回字段 zjje ,否则返回0;
nvl 函数 nvl(xxx,0) 意思为 将需要的字段 或者查询出来的数据 xxx 转化为一个数值;