gpt4 book ai didi

sql - 查询每个部门最近雇佣的员工

转载 作者:行者123 更新时间:2023-12-02 06:56:32 25 4
gpt4 key购买 nike

表架构:

create table dept 
(
DEPTNO int NOT NULL,
DNAME VARCHAR(14),
LOC VARCHAR(13)
)

create table emp
(
EMPNO int primary key,
ENAME VARCHAR(1000),
JOB VARCHAR(1000),
MGR int,
HIREDATE DATETIME,
SAL decimal(15, 5),
COMM decimal(20, 5),
DEPTNO int
)
dept表中的 Deptnoemp表是主外键关系

问题:找出每个部门最近雇用的员工。

查询:

SELECT 
convert(varchar(50), e.ENAME + ',' + e.DEPTNO),
MAX(hiredate)
FROM
emp e
JOIN
dept d ON e.deptno = d.deptno
GROUP BY
convert(varchar(50), e.ENAME + ',' + e.DEPTNO)

我得到一个错误:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'ashish,' to data type int.

最佳答案

你的错误来自这部分; e.ENAME + ',' + e.DEPTNO 您正尝试使用 + 运算符添加两种不同类型的字段,因此您需要正确使用转换,像这样:e.ENAME + ',' + CONVERT(VARCHAR(50), e.DEPTNO)

但是为了回答您的问题,您需要另一种类型的查询:

SELECT TOP(1) 
e.ENAME + ',' + CONVERT(VARCHAR(50), e.DEPTNO)
FROM
dept d
LEFT OUTER JOIN
(SELECT *, ROW_NUMBER() OVER (PARTITION BY DEPTNO ORDER BY HIREDATE DESC) AS recentHired
FROM emp) e ON d.DEPTNO = e.DEPTNO
ORDER BY
e.recentHired

关于sql - 查询每个部门最近雇佣的员工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com