如:
公司ID 人才ID 时间
GS1 RC1 2006-6-13
GS1 RC1 2006-6-25
GS2 RC1 2006-6-13
GS2 RC1 2006-6-25
如何用纯粹SQL语句实现,只得到每个公司的最新入职的人才记录?
即:
GS1 RC1 2006-6-13
GS2 RC1 2006-6-13
务请不吝赐教.
补充说明:非常感谢computer_kill的回答,
首先承认我的一个错误,最新的记录其实应该是
GS1 RC1 2006-6-25
GS2 RC1 2006-6-25
其次,你的方法,我已经试过N次,都不行,原因是:
我想得到最新记录的所有字段,但是象你说的用" SELECT TOP 1 * "配合"group by"是不行的,不知道你试过没,结果都提示"该列不包含在聚合函数中也不包含在Group by中".
能否用SQL语句实现"分组查询后,取各小组最上面一条记录"?
答案:3 悬赏:40 手机版
解决时间 2021-02-08 22:10
- 提问者网友:杀生予夺
- 2021-02-08 05:33
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-08 06:16
SELECt 公司ID, 人才ID, 时间
FROM TABLE
WHERe 时间 = (SELECt MAX(A.时间) FROM TABLE A WHERe A.公司ID= B.公司ID)
上面可以得到每个公司最新入职的人才的记录,如果这个公司最新入职的有多个人同样也可以查出来。
FROM TABLE
WHERe 时间 = (SELECt MAX(A.时间) FROM TABLE A WHERe A.公司ID= B.公司ID)
上面可以得到每个公司最新入职的人才的记录,如果这个公司最新入职的有多个人同样也可以查出来。
全部回答
- 1楼网友:动情书生
- 2021-02-08 08:45
SELECt TOP 1 * FROM 表名 group by 公司ID ORDER BY 时间 desc
注意只得到每个公司的最新入职的人才记录,一定要在时间上降序排列
否则你说是GS1 RC1 2006-6-25 新那 GS1 RC1 2006-6-13 还是新?
- 2楼网友:玩世
- 2021-02-08 07:45
你的意思是 以 x1 为条件 查 字段2 吧? 这和分组有关吗?
按我的理解是这样的
select 字段2 字段3 from tablename where 字段3=x1
结果
b1 x1
b2 x1
b3 x1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯