朋友您好我被困在编写一个查询中。
你能帮帮我吗?
我有一个名为prog
的表,其中包含doj
列。
在name
列中,我有所有员工的姓名,在doj
列中我有他们的加入日期。
我必须找出经验最少的员工的姓名,所以我写这个查询是为了找到最有经验的员工使用他们的加入日期:
SELECT
min(DATEDIFF(YEAR,doj,GETDATE()) -
(CASE WHEN
DATEADD(YY,DATEDIFF(YEAR,doj,GETDATE()),doj) > GETDATE()
THEN 1
ELSE 0 END)) AS 'least experience'
FROM programmer
我无法找到员工的name
。
如果我将name
列与group by
一起使用,我会列出所有员工的姓名和年份。
我怎样才能找到那个经验最少的特定员工的名字。
提前致谢并等待回复。
答案 0 :(得分:7)
这将选择具有最新开始日期的程序员。
Select top 1 name, doj
from programmer
order by doj desc