请教如下语句还能怎么优化吗???
select khbm,khmc,blbm,blmc,blys,bldw,sum(a_ps) as a_ps,sum(a_sl) as a_sl,
sum(b_ps) as b_ps,sum(b_sl) as b_sl,sum(a_sl)-sum(b_sl) as ab_sl,
sum(c_ps) as c_ps,sum(c_ps) as c_ps,sum(c_sl) as c_sl,sum(b_sl)-sum(c_sl) as bc_sl
from (
SELECT A.KHBM AS KHBM,A.KHMC AS KHMC,A1.BLBM AS BLBM,A1.BLMC AS BLMC,
A1.BLYS AS BLYS,A1.BLDW AS BLDW,SUM(A1.PS) AS A_PS,SUM(A1.SL) AS A_SL,1 AS QB,
0 AS B_PS,0 AS B_SL,0 AS C_PS,0 AS C_SL
FROM BLJCD A,BLJCDMX A1 WHERE A.DH=A1.DH
GROUP BY A.KHBM,A.KHMC,A1.BLBM,A1.BLMC,A1.BLYS,A1.BLDW
UNION ALL
SELECT B.KHBM AS KHBM,B.KHMC AS KHMC,B.BLBM AS BLBM,B.BLMC AS BLMC,B.BLYS AS BLYS,
B1.BLDW AS BLDW,0 AS A_PS,0 AS A_SL,2 AS QB,
SUM(B.PS_H) AS B_PS,SUM(B.SL_H) AS B_SL,0 AS C_PS,0 AS C_SL
FROM BLCPJCD B,BLCPJCDMX B1 WHERE B.ID=B1.ID
GROUP BY B.KHBM,B.KHMC,B.BLBM,B.BLMC,B.BLYS,B1.BLDW
UNION ALL
SELECT C.KHBM AS KHBM,C.KHMC AS KHMC,C1.BLBM AS BLBM,C1.BLMC AS BLMC,C1.BLYS AS BLYS,
C1.BLDW AS BLDW,0 AS A_PS,0 AS A_SL ,3 AS QB,
0 AS B_PS,0 AS B_SL,
SUM(C1.PS) AS A_PS,SUM(C1.SL) AS A_SL
FROM BLCCD C,BLCCDMX C1 WHERE C.DHS=C1.DHS
GROUP BY C.KHBM,C.KHMC,C1.BLBM,C1.BLMC,C1.BLYS,C1.BLDW ) s group by s.khbm,s.khmc,s.blbm,s.blmc,s.blys,s.bldw