在访问中计算了许多字段

时间:2014-02-27 13:02:06

标签: sql field

我有一个这样的数据库表:

 ID   NAMEID      ClASSID    SEX    
---------------------------------
  1       1          1        0
  2       1          1        1
  3       1          1        1
  4       2          2        1
  5       2          2        0
  6       2          2        1
  7       2          2        1

请帮助我,如何获得结果,如下所示:(在Access中使用查询)

NameID      ClassID    SEX   MALE   FEMALE
--------------------------------------------    
   1          1         3      2       1
   2          2         4      3       1

非常感谢

1 个答案:

答案 0 :(得分:2)

我假设您要对NameIdClassId字段进行分组,并且结果中的Sex字段根本不是性别,而是人数。< / p>

这样的事情:

select
  NameId,
  ClassId,
  count(*) as Sex,
  sum(Sex) as Male,
  count(*) - sum(Sex) as Female
from
  TheTable
group by
  NameId,
  ClassId

编辑:

对于性别值1和2,您可以使用case来计算它们:

  sum(case Sex when 1 then 1 else 0 end) as Male,
  sum(case Sex when 2 then 1 else 0 end) as Female