已知:现有一张职工信息表,职工编号,职工姓名,职工生日,公司编码
求:统计根据输入的公司编码统计改公司各年龄段的人数 年龄段分别为 30岁以下,31-35,36-45,46-55,56以上;
初始化数据如下;
CREATE TABLE lzy_test(
[id] [int] NOT NULL,
[name] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[birthday] [datetime] NULL,
[school_code] [int] NULL,
CONSTRAINT [PK_lzy_test] PRIMARY KEY CLUSTERED
)
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (1,'name1',{ts '2010-01-01 00:00:00.'},1)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (2,'name2',{ts '1989-01-02 00:00:00.'},1)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (3,'name3',{ts '1978-02-07 00:00:00.'},1)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (4,'name4',{ts '1971-01-08 00:00:00.'},1)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (5,'name5',{ts '1990-09-09 00:00:00.'},1)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (9,'name9',{ts '1981-01-08 00:00:00.'},1)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (10,'name10',{ts '1992-08-07 00:00:00.'},2)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (11,'name11',{ts '1965-08-08 00:00:00.'},2)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (12,'name12',{ts '1960-08-08 00:00:00.'},2)
GO
INSERT INTO lzy_test (id,name,birthday,school_code) VALUES (13,'name13',{ts '1967-04-08 00:00:00.'},2)
GO
解答问题:
select school_code,(
case((case(sign(convert(varchar(100),getdate()-DATEADD(year,datediff(year,h.personal_birthday,getdate()),h.personal_birthday),112)-19000101))
when 0 then datediff(year,h.personal_birthday,getdate())+1
when 1 then datediff(year,h.personal_birthday,getdate())+1
when -1 then datediff(year,h.personal_birthday,getdate())
end)-1)/5+1)
when 1 then '30岁以下'
when 2 then '30岁以下'
when 3 then '30岁以下'
when 4 then '30岁以下'
when 5 then '30岁以下'
when 6 then '30岁以下'
when 7 then '31-35'
when 8 then'36-45'
when 9 then'36-45'
when 10 then'46-55'
when 11 then'46-55'
else '56以上'
end) as 年龄段,
count(*) as 人数
from lzy_test
group by (
case(((case(sign(convert(varchar(100),getdate()-DATEADD(year,datediff(year,h.personal_birthday,getdate()),h.personal_birthday),112)-19000101))
when 0 then datediff(year,h.personal_birthday,getdate())+1
when 1 then datediff(year,h.personal_birthday,getdate())+1
when -1 then datediff(year,h.personal_birthday,getdate())
end)-1)/5+1)
when 1 then '30岁以下'
when 2 then '30岁以下'
when 3 then '30岁以下'
when 4 then '30岁以下'
when 5 then '30岁以下'
when 6 then '30岁以下'
when 7 then '31-35'
when 8 then'36-45'
when 9 then'36-45'
when 10 then'46-55'
when 11 then'46-55'
else '56以上'
end )
,school_code
分享到:
相关推荐
6. 报表展示:以表格或图表的形式展示学生信息统计,如各班级人数、男女比例等。 7. 文件导出导入:支持将数据导出为CSV或其他格式,方便数据交换;也能导入外部数据,更新数据库。 在VB中,我们可以使用Form控件...
4. 成绩管理:录入比赛成绩,可以按项目、运动员或比赛时间查询,支持成绩排序和统计。 5. 排名显示:根据比赛成绩自动生成各项目和总成绩的排名。 6. 报告生成:提供数据分析报告,如个人最佳成绩、队伍总分等。 ...
-- 只检索人数大于1的年龄段 ``` 这些SQL语句是数据库查询的基础,熟练掌握它们能够帮助你更有效地管理和分析数据。在实际工作中,结合WHERE、JOIN、子查询等其他概念,可以构建更复杂的查询来满足各种需求。
SQL 语句练习题 本节课练习题目涵盖了 SQL 语句的各种知识点,旨在考察学生对 SQL 语句...4. 统计男女学生人数,并计算平均年龄。 本节课练习题目涵盖了 SQL 语句的各种知识点,旨在考察学生对 SQL 语句的掌握程度。
- 查询每个年龄段的平均薪资和该年龄段的人数:`SELECT fage, AVG(fsalary), COUNT(*) FROM t_employee GROUP BY fage;` 以上就是基于提供的SQL Server源码所总结的关键知识点。这些基本的SQL操作对于日常的数据...
- **编写T-SQL程序**: 实现对数据的统计分析,如统计每个科目的考生人数、及格人数等。 - **更新数据**: 编写T-SQL脚本更新数据,例如根据成绩调整分数等。 ##### 5. 创建视图 - **创建视图**: 在考生表上创建视图`...
根据提供的标题、描述、标签及部分内容,我们可以整理出一系列与SQL相关的知识点,这些知识点主要涵盖了数据记录筛选、更新、删除、插入以及统计等操作。同时,还包括了如何创建表、删除表,以及如何通过不同的连接...
### 网络数据库复习知识点解析 ...5. **统计每个系的学生人数**:`SELECT Sdept, COUNT(*) AS StudentCount FROM Student GROUP BY Sdept`,此查询语句使用`GROUP BY`对不同系的学生进行分组,并统计每个系的学生总数。
3.试用CASE语句输出学生表中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性...
- 班级统计:提供班级层面的成绩统计,包括总成绩、平均成绩、班级排名和特定分数段的学生人数。同时,可查看单个学生各科成绩及排名。 - 年级统计:以年级为单位进行成绩处理,统计年级总成绩、排名,以及分数段...
7. **界面设计**:一个良好的用户界面是关键,需要直观、简洁,便于不同年龄段的用户操作。 在实际的ASP源码中,可能包含以下主要文件: - **login.asp**:登录页面,处理用户的登录请求,验证用户名和密码。 - **...
这篇实验报告是关于数据库原理的单表查询,主要在SQL Server 2000环境下进行。实验目的是让学生熟悉SQL Server查询分析器的使用,并熟练掌握单表查询、数据排序及聚集函数的应用。实验中涉及了多个基本的SQL查询操作...
- **技术栈**:VB(Visual Basic)+ SQL Server - **目的**: - 实现课程管理工作的电脑化,提高工作效率。 - 通过网络系统实现集中管理和分散操作,提升选课管理工作的质量和效率。 #### 二、需求分析 - **用户...
1. **数据录入**:录入员工的个人信息(如工号、性别、年龄、籍贯、婚姻状况、学历等)、部门信息(部门名称、负责人、人数)、工资相关信息(如基本工资、津贴、扣款等)。 2. **数据查询**:提供多种查询条件,如...
第十二个单选题询问了如何创建统计每个系的学生人数的视图。正确的答案是A,“CREATE VIEW v1 AS SELECT 所在系, COUNT(*) FROM 学生表 GROUP BY 所在系”。这个SQL语句通过`GROUP BY`子句按照不同的系分组,并使用`...
3. SQL语言:掌握SQL Server 2000的操作,学习创建、修改和管理数据库,以及数据表的建立、操作和查询。 4. 数据库编程:学习使用SQL查询语言进行复杂的数据查询、统计和报表生成。 三、系统功能设计 1. 数据录入:...
为了统计离散数学(Cno为'8')的成绩分布情况,我们首先创建一个名为SC8的临时表,用于存储不同分数段的学生人数,然后定义一个名为Stats的存储过程来填充这个表。下面是完整的存储过程代码: ```sql /* 为SC表...