能否用SQL语句实现"分组查询后,取各小组最上面一条记录"? 15
如:公司ID人才ID时间GS1RC12006-6-13GS1RC12006-6-25GS2RC12006-6-13GS2RC12006-6-25如何用纯粹SQL语句实现,...
如:
公司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中". 展开
公司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中". 展开
3个回答
展开全部
SELECT TOP 1 * FROM 表名 group by 公司ID ORDER BY 时间 desc
注意只得到每个公司的最新入职的人才记录,一定要在时间上降序排列
否则你说是GS1 RC1 2006-6-25 新那 GS1 RC1 2006-6-13 还是新?
注意只得到每个公司的最新入职的人才记录,一定要在时间上降序排列
否则你说是GS1 RC1 2006-6-25 新那 GS1 RC1 2006-6-13 还是新?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
公司 人才 时间
a b c
表名T
select t1.a,t.b,t1.c from (select a,max(c) as c from t group by a) t1 inner join t on t1.a=t.a and t1.c=t.c
a b c
表名T
select t1.a,t.b,t1.c from (select a,max(c) as c from t group by a) t1 inner join t on t1.a=t.a and t1.c=t.c
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询