数据库查询实现:
性别/总数:
SELECT EmpSex, COUNT(*) AS SexCount FROM EmpGeneralInfo GROUP BY EmpSex
一共得到2条记录(不考虑无性别记录),其一为女,其一为男,二者相加为总数
辖区:
SELECT EmpEvenAddress, COUNT(*) AS AddressCount FROM EmpGeneralInfo GROUP BY EmpEvenAddress
一共得到辖区个数相等的记录(不考虑无辖区记录),依次显示出来即可
年龄:
SELECT T.yearGrade, COUNT(T.id) AS AgeCount FROM (SELECT E.id, (DATEDIFF(year,E.EmpBirthDay,getdate())-1)/10 AS yearGrade FROM EmpGeneralInfo E) T
GROUP BY T.yearGrade
将得到所有年龄段人数统计
yearGrade就是 年龄段, 0 为 10岁以下,1就是 11-20... 60以上可以通过 总数减去 60以前的所有人,当然也可以把最后的记录加起来
(DATEDIFF(year,E.EmpBirthDay,getdate())-1)/10 的
-1 用来修正 10,20岁等作为相应年龄段, 较为精确的计算可以采用
(DATEDIFF(day,E.EmpBirthDay,getdate())/365-1)/10
时间仓促,若有不足之处请包涵,仅供参考.[基于SQL Server 2000]
[此贴子已经被作者于2005-8-25 20:33:23编辑过]
VB, Delphi, ASP, PHP, JSP, .NET
MS SQL, My SQL, Oracle
Diablo, StarCraft, WarCraft, World of Warcraft