sql-server - 使用描述更新活动列
问题描述
我有两张桌子:
学生活动表:
ID NAME TIME_FROM TIME_TO ACTIVITY
-------------------------------------------
1 ABC 9:00 10:00 WALK
2 ABC 10:00 12:00 PLAY
GAMELOG table:
ID ACTIVITY_ID STUDENT_NAME CRICKET (HR) FOOT BALL (HR)
------------------------------------------------------------------
1 2 ABC 1 1
学生活动表包含学生主要活动,游戏日志表包含详细活动。例如:活动“PLAY”包括 CRICKET 和 FOOT BALL 作为活动的详细信息。
我需要一个查询来检索活动详细信息,如预期输出所示:
ID NAME ACTIVITY DURATION HOURS
----------------------------------------
1 ABC WALKING 1
2 ABC CRICKET 1
2 ABC FOOTBALL 1
如果没有如上所示的 WALKING 的主要活动的详细活动,则查询应返回主要活动
假设游戏日志是根据记录的时间生成的。学生走了一个小时,玩了 2 小时 游戏详情被详细记录为板球 1 小时和足球 1 小时
比赛顺序应为 1. Cricket 和 2. FOOT BALL
简单来说,只要有 PLAY 列值,输出就应该显示 GameLog 表中的比赛详细信息以及 CRICKET 和 FOOT BALL TIME。
解决方案
我试过没有实际创建表..希望它有所帮助。
SELECT
S.ID
,S.Name
,CASE
WHEN S.Activity = 'WALK' THEN 'Walking'
WHEN A.Cricket = 1 AND S.Activity = 'Play' THEN 'Cricket'
WHEN A.Football = 1 AND S.Activity = 'Play' THEN 'Football'
END CASE AS Activity
FROM
Student_Activity SA
JOIN GameLog G ON SA.Name = G.Student_Name
推荐阅读
- python - 从 Photoshop 发送的 Python 返回变量
- python - 如何将时区归因于给定的 UTC 偏移量
- tensorflow - Tensorflow:如何应用一维卷积特征/通道虎钳?
- flutter - 如何获取本地时区名称?
- python - 封装函数的包装器
- python - Python:从字典列表中查找字典的索引
- flutter - Flutter - 类参数的未定义名称
- c - 具有链表 C 的递归映射函数
- .net-core - 如何使用 .Net core 3.1 连接到 Snowflake DB?
- google-cloud-firestore - 在 Firebase 中查询地图数组