SELECT bianh = (CASE WHEN sb.bianh IS NULL THEN nnd.bianh ELSE sb.bianh END), 
      zhuzhy = (CASE WHEN sb.zhuzhy IS NULL THEN 0 ELSE sb.zhuzhy END), 
      zhuanj = (CASE WHEN sb.zhuanj IS NULL THEN 0 ELSE sb.zhuanj END), 
      jiaosh = (CASE WHEN sb.jiaosh IS NULL THEN 0 ELSE sb.jiaosh END), 
      zhuyy = (CASE WHEN sb.zhuyy IS NULL THEN 0 ELSE sb.zhuyy END), 
      zhuzhy = (CASE WHEN nnd.zhuzhy IS NULL THEN 0 ELSE nnd.zhuzhy END), 
      fujsh = (CASE WHEN nnd.fujsh IS NULL THEN 0 ELSE nnd.fujsh END)
FROM (SELECT bianh = (CASE WHEN wy.bianh IS NULL 
              THEN liuhm.bianh ELSE wy.bianh END), 
              zhuzhy = (CASE WHEN wy.zhuzhy IS NULL THEN 0 ELSE wy.zhuzhy END), 
              zhuanj = (CASE WHEN wy.zhuanj IS NULL THEN 0 ELSE wy.zhuanj END), 
              jiaosh = (CASE WHEN liuhm.jiaosh IS NULL THEN 0 ELSE liuhm.jiaosh END), 
              zhuyy = (CASE WHEN liuhm.zhuyy IS NULL THEN 0 ELSE liuhm.zhuyy END)
        FROM (SELECT bianh = (CASE WHEN zhuzhy.bianh IS NULL 
                      THEN zhuanj.bianh ELSE zhuzhy.bianh END), 
                      zhuzhy = (CASE WHEN zhuzhy.renc IS NULL 
                      THEN 0 ELSE zhuzhy.renc END), 
                      zhuanj = (CASE WHEN zhuanj.renc IS NULL 
                      THEN 0 ELSE zhuanj.renc END)
                FROM (SELECT bianh, yszc, COUNT(*) AS renc
                        FROM mzghb
                        WHERE yszc = '主治医' AND len(ysgh) = 4
                        GROUP BY bianh, yszc) zhuzhy FULL OUTER JOIN
                          (SELECT bianh, yszc, COUNT(*) AS renc
                         FROM mzghb
                         WHERE yszc = '专家' AND len(ysgh) = 4
                         GROUP BY bianh, yszc) zhuanj ON zhuzhy.bianh = zhuanj.bianh) 
              wy FULL OUTER JOIN
                  (SELECT bianh = (CASE WHEN jiaosh.bianh IS NULL 
                       THEN zhuyy.bianh ELSE jiaosh.bianh END), 
                       jiaosh = (CASE WHEN jiaosh.renc IS NULL 
                       THEN 0 ELSE jiaosh.renc END), 
                       zhuyy = (CASE WHEN zhuyy.renc IS NULL 
                       THEN 0 ELSE zhuyy.renc END)
                 FROM (SELECT bianh, yszc, COUNT(*) AS renc
                         FROM mzghb
                         WHERE yszc = '正教授' AND len(ysgh) = 4
                         GROUP BY bianh, yszc) jiaosh FULL OUTER JOIN
                           (SELECT bianh, yszc, COUNT(*) AS renc
                          FROM mzghb
                          WHERE yszc = '住院医' AND len(ysgh) = 4
                          GROUP BY bianh, yszc) zhuyy ON jiaosh.bianh = zhuyy.bianh) 
              liuhm ON wy.bianh = liuhm.bianh) sb FULL OUTER JOIN
          (SELECT bianh = (CASE WHEN yanjsh.bianh IS NULL 
               THEN fujsh.bianh ELSE yanjsh.bianh END), 
               zhuzhy = (CASE WHEN yanjsh.renc IS NULL 
               THEN 0 ELSE yanjsh.renc END), fujsh = (CASE WHEN fujsh.renc IS NULL 
               THEN 0 ELSE fujsh.renc END)
         FROM (SELECT bianh, yszc, COUNT(*) AS renc
                 FROM mzghb
                 WHERE yszc = '住院医' AND len(ysgh) > 4
                 GROUP BY bianh, yszc) yanjsh FULL OUTER JOIN
                   (SELECT bianh, yszc, COUNT(*) AS renc
                  FROM mzghb
                  WHERE yszc = '副教授' AND len(ysgh) = 4
                  GROUP BY bianh, yszc) fujsh ON yanjsh.bianh = fujsh.bianh) nnd ON 
      sb.bianh = nnd.bianh
ORDER BY bianh这只是一条查询,查出后还有一个类似的查询, 
然后这两个查询再完全联接!
唉~~~~~~~~累死我了,不知怎么办好,SQL2000环境
或用其他的什么办法可以取代他?
多谢!