select a.学历名称,(SELECT COUNT(*) FROM Table2 WHERE 学历代号=a.学历代号 AND 性别='男') AS 男性人数,(SELECT COUNT(*) FROM Table2 WHERE 学历代号=a.学历代号 AND 性别='女') AS 女性人数,(SELECT COUNT(*) FROM Table2 WHERE 学历代号=a.学历代号) AS 总人数 from Table1 a

解决方案 »

  1.   

    切记是在sql server2000中,不是在access数据库中写这个语句。在access中用交叉表是可以实现上述要求的
      

  2.   

    试试看
    Select A.学历名称,
           男性人数=(Select Sum(Case When 性别='男' Then 1 Else 0 End) From empdoc Where 学历代号=A.学历代号),
           女性人数=(Select Sum(Case When 性别='女' Then 1 Else 0 End) From empdoc Where 学历代号=A.学历代号),
           总人数=(Select Count(*) From empdoc Where 学历代号=A.学历代号)
      From degreeDoc A
      Order By A.学历代号
      

  3.   

    试试看
    Select A.学历名称,
           男性人数=(Select Sum(Case When 性别='男' Then 1 Else 0 End) From empdoc Where 学历代号=A.学历代号),
           女性人数=(Select Sum(Case When 性别='女' Then 1 Else 0 End) From empdoc Where 学历代号=A.学历代号),
           总人数=(Select Count(*) From empdoc Where 学历代号=A.学历代号)
      From degreeDoc A
      Order By A.学历代号