SELECT
schoolname, school1, addtime,
COUNT(teacherid) AS allteacher,
SUM ( CASE WHEN vac=0 THEN 1 ELSE 0 END ) AS t1,
(SELECT COUNT(studentid) FROM studentTB WHERE Parentsid1<>'' and schoolid = s.schoolid) AS allstudent,
(SELECT COUNT(studentid) FROM studentTB WHERE Parentsid2<>'' and schoolid = s.schoolid) AS allstudent2,
(SELECT COUNT(studentid) FROM studentTB WHERE Parentsid1<>'' and vac1=0 and schoolid = s.schoolid) AS s1,
(SELECT COUNT(studentid) FROM studentTB WHERE Parentsid2<>'' and vac2=0 and schoolid = s.schoolid) AS s2
FROM
schoolTB s, teacherTB
WHERE
s.schoolid = teacherTB.schoolid
GROUP BY
schoolname, school1, addtime
看看这样处理一下, 会不会比原来稍微好一点点