SELECT 
          COUNT(CCT.ID) AS 记录数C,
          COUNT(ECT.ID) AS 记录数E,
          COUNT(SYT.ID) AS 记录数S,
          SchoolName AS 学院名称
FROM
          ShiYanTable SYT,
          ExamCreditTable ECT,
          CourseCreditTable CCT,
          School S
WHERE
          CCT.SchoolID=ECT.SchoolID AND ECT.SchoolID=SYT.SchoolID 
          AND SYT.SchoolID=S.SchoolID
GROUP BY 
          S.SchoolName
为什么这样扫描不出正确的三个记录数呢?

解决方案 »

  1.   

    其中,ShiYanTable ,ExamCreditTable ,CourseCreditTable,这三个表里都有字段:ID、SchoolID表School 里只有字段:SchoolID和SchoolName
      

  2.   

    COUNT(CCT.ID) AS 记录数C, 
              COUNT(ECT.ID) AS 记录数E, 
              COUNT(SYT.ID) AS 记录数S,--
    sum(case when cct.id is not null then 1 else 0 end) as c,
    sum(case when ect.id is not null then 1 else 0 end) as e,
    sum(case when syt.id is not null then 1 else 0 end) as s
      

  3.   

    另外:
    SELECT 
              sum(case when cct.id is not null then 1 else 0 end) as c, 
    sum(case when ect.id is not null then 1 else 0 end) as e, 
    sum(case when syt.id is not null then 1 else 0 end) as s 

              SchoolName AS 学院名称 
    FROM School S left join
              ShiYanTable SYT on  SYT.SchoolID=S.SchoolID 
              left join ExamCreditTable ECT on  ECT.SchoolID=SYT.SchoolID 
              left join CourseCreditTable CCT on CCT.SchoolID=ECT.SchoolID
     GROUP BY 
              S.SchoolName 
             
      

  4.   

    目的是:分别从三个表中count出同一个SchoolID的记录数,然后按SchoolName排序打印出来
      

  5.   

    谢谢啊
    还有个问题,如果我想对count出来的结果进行排序,怎么样放置order by 呢?
    SELECT
              COUNT(ID) AS 记录数,
              SchoolName AS 学院名称
            FROM
              School S left join 
              CourseCreditTable CCT on  CCT.SchoolID=S.SchoolID
            GROUP BY 
              S.SchoolName
    我想对COUNT(ID) AS 记录数进行排序,请问怎么写这个语句呢?
      

  6.   

    SELECT
              COUNT(ID) AS 记录数,
              SchoolName AS 学院名称
            FROM
              School S left join 
              CourseCreditTable CCT on  CCT.SchoolID=S.SchoolID
            GROUP BY 
              S.SchoolName
            ORDER BY COUNT(ID)---ORDER BY 1
      

  7.   

    呵呵,太感谢了,看来我对SQL的左连接右连接甚至排序都不熟悉,╮(╯▽╰)╭
    得好好补补了
      

  8.   

    分别从三个表中count出同一个SchoolID的记录数,然后按SchoolName排序打印出来,这个还是没完成目标,哎,继续研究