加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – 每个工作者的MAX日期

发布时间:2020-12-24 17:23:35 所属栏目:编程 来源:网络整理
导读:考虑两个表. Worker表包含W_ID,W_Name等字段.课程表包含C_ID,C_Name,C_Date等字段. 工人可以参加许多课程,许多工人可以参加一门课程.因此,两个表之间存在多对多的关系.打破多对多,并创建一个名为Takes的新表,其中包含外键W_ID和C_ID. 这是一个问题:我想找出

考虑两个表. Worker表包含W_ID,W_Name等字段.课程表包含C_ID,C_Name,C_Date等字段.

工人可以参加许多课程,许多工人可以参加一门课程.因此,两个表之间存在多对多的关系.打破多对多,并创建一个名为Takes的新表,其中包含外键W_ID和C_ID.

这是一个问题:我想找出所有工人的名单和他们最后的课程.例如,如果W_ID = 1,则采用C_Date 20/01/2010和C_Date 25/10/2010以及C_Date 20/12/2010.

然后需要的结果是:

W_ID     C_Date
1        20/12/2010
2
3
4

编辑

我想找到每个工人完成课程的最长日期,因为工人会做很多课程.我是商学院学生,所以我不能使用INNER JOIN命令. IN可以代替吗?

我在Microsoft Access中使用我的SQL

解决方法

SELECT  w.w_id,MAX(c.c_date)
FROM    worker w
LEFT JOIN
        worker_course wc
ON      wc.w_id = w.w_id
LEFT JOIN
        course с
ON      c.c_id = wc.c_id
GROUP BY
        w.w_id

或这个:

SELECT  w.w_id,MAX(c.c_date)
FROM    course с
JOIN    worker_course wc
ON      wc.c_id = c.c_id
RIGHT JOIN
        worker w
ON      w.w_id = wc.w_id
GROUP BY
        w.w_id

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读