微信公众号是在哪个网站做的,最好的完全免费开源企业网站,秦皇岛网站建设公司,直播网站建设开发课后作业 在homework库下执行 作业1#xff1a; 案例#xff1a;根据用户分数划分等级。小于60分为不及格#xff0c;[60,80)为及格#xff0c;[80,90)为良好#xff0c;大于等于90分以上为优秀。 建表语句#xff1a; CREATE TABLE Grades ( ID INT PRIMARY KEY, Name V… 课后作业 在homework库下执行 作业1 案例根据用户分数划分等级。小于60分为不及格[60,80)为及格[80,90)为良好大于等于90分以上为优秀。 建表语句 CREATE TABLE Grades ( ID INT PRIMARY KEY, Name VARCHAR(50), Score INT ); 数据插入语句 -- 插入一些示例数据 INSERT INTO Grades (ID, Name, Score) VALUES (1, 张三, 95); INSERT INTO Grades (ID, Name, Score) VALUES (2, 李四, 85); INSERT INTO Grades (ID, Name, Score) VALUES (3, 王五, 70); INSERT INTO Grades (ID, Name, Score) VALUES (4, 赵六, 58); INSERT INTO Grades (ID, Name, Score) VALUES (5, 陈七, 30); 查询语句 select Name, case when Score90 then 优秀
when Score80 and Score90 then 良好
when Score60 and Score80 then 及格
else 不及格 end from Grades; 希望得到的结果如下 作业2 查询过去一周内的活动记录 建表语句 CREATE TABLE ActivityLog ( ActivityID INT PRIMARY KEY IDENTITY(1,1), UserID INT NOT NULL, ActivityType VARCHAR(50) NOT NULL, ActivityTime DATETIME NOT NULL ); 这个ActivityLog表设计包含ActivityID主键自动增长、UserID执行活动的用户ID、ActivityType活动类型如登录、发布、评论等和ActivityTime活动发生的时间字段。 数据插入语句 接下来我们将插入一些示例数据确保其中包含过去一周内的活动记录 -- 插入过去一周内的活动记录 INSERT INTO ActivityLog(UserID, ActivityType, ActivityTime) VALUES (101, Login, DATEADD(DAY, -3, GETDATE())), -- 三天前的登录活动 (102, Post, DATEADD(HOUR, -24, GETDATE())), -- 昨天的发帖活动 (103, Comment, DATEADD(DAY, -6, GETDATE())), -- 六天前的评论活动 (104, Logout, DATEADD(HOUR, -72, GETDATE())), -- 三天前的登出活动 (105, Like, GETDATE() - 7); -- 正好一周前的点赞活动 -- 插入超过一周的活动作为对比 INSERT INTO ActivityLog(UserID, ActivityType, ActivityTime) VALUES (106, Share, DATEADD(WEEK, -2, GETDATE())); -- 两周前的分享活动 这些插入语句模拟了不同用户在过去一周内进行的各种活动记录同时也加入了一条超过一周的记录作为对比以便在执行查询时能明确区分哪些活动是在过去一周内发生的。 如果你想找出最近一周内所有的活动记录查询语句应写为 select *from ActivityLog where ActivityTimedateadd(week,-1,getdate()); 作业3: 计算订单处理时长 如果有Orders表包含OrderPlaced订单下单时间和OrderCompleted订单完成时间字段你可以计算每个订单的处理时长 建表语句 首先我们来创建一个Orders表以保存订单的放置时间和完成时间以及其他可能需要的信息。 CREATE TABLE Orders ( OrderID INT PRIMARY KEY IDENTITY(1,1), CustomerID INT NOT NULL, OrderPlaced DATETIME NOT NULL, OrderCompleted DATETIME, TotalAmount DECIMAL(10, 2) NOT NULL ); 在这个表结构中OrderID是主键且自动递增CustomerID存储客户IDOrderPlaced和OrderCompleted分别存储订单的放置时间和完成时间而TotalAmount表示订单总金额。 数据插入语句 接下来我们向Orders表中插入一些示例数据包括订单的放置时间和完成时间以便演示处理时长的计算。 -- 插入订单数据 INSERT INTO Orders(CustomerID, OrderPlaced, OrderCompleted, TotalAmount) VALUES (101, 2024-05-01 14:30:00, 2024-05-01 15:45:00, 250.99), -- 处理时长1小时15分钟 (102, 2024-05-02 09:00:00, 2024-05-02 10:00:00, 120.50), -- 处理时长1小时 (103, 2024-05-03 16:30:00, NULL, 85.75), -- 未完成订单处理时长未知 (104, 2024-05-04 10:15:00, 2024-05-04 11:00:00, 175.00); -- 处理时长45分钟 这些插入语句为不同的客户创建了订单记录其中包含了订单的放置时间、完成时间有的订单可能还未完成所以OrderCompleted为NULL以及订单的总金额。通过前面提供的查询语句我们可以计算出已完成订单的处理时长以分钟为单位。请注意最后一个订单的OrderCompleted字段是NULL这意味着该订单尚未完成所以在执行原始的查询时它应被排除在外。 查询语句 select *from Orders where OrderCompleted is not NULL; 最后结果应是 作业4 计算员工工龄 假设我们有一个公司员工信息表Employees其中包含员工的入职日期HireDate。我们想要查询每位员工的工龄以年为单位。 建表语句 CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY IDENTITY(1,1), FirstName NVARCHAR(50) NOT NULL, LastName NVARCHAR(50) NOT NULL, HireDate DATE NOT NULL ); 这个表格定义了EmployeeID员工ID主键自动增长、FirstName名、LastName姓和HireDate入职日期字段。 数据插入语句 INSERT INTO Employees(FirstName, LastName, HireDate) VALUES (John, Doe, 2020-01-01), -- 入职于2020年 (Jane, Smith, 2019-07-15), -- 入职于2019年 (Alice, Johnson, 2023-03-20); -- 入职于2023年 这里插入了三个员工的记录每个员工的入职日期不同。 查询语句 现在我们要计算每个员工截止到当前时间的工龄 查询语句 select *,datediff(year,HireDate,getdate())as 工龄年数 from Employees; 最后结果应是