gpt4 book ai didi

sql - 查找在不同入职日期雇用的员工姓名

转载 作者:搜寻专家 更新时间:2023-10-30 23:36:34 25 4
gpt4 key购买 nike

enter image description here我写了一个查询来查找同一天雇用的雇员。

这是查询

select a.name,b.name,a.joining,b.joining from [SportsStore].[dbo].[Employees] a, 
[SportsStore].[dbo].[Employees] b where a.joining = b.joining and a.name>b.name

然后我的脑海里冒出一个问题。我如何找到那些在不同日期被雇用的雇员?我试过这样的事情

select a.name,b.name,a.joining,b.joining from [SportsStore].[dbo].[Employees] a, 
[SportsStore].[dbo].[Employees] b where a.joining != b.joining and a.name>b.name

但后来我意识到这没有意义。我考虑过一个子查询,但它也不起作用,因为我们是从两个表中进行选择的。

所以我搜索了一下,找不到任何东西。

所以问题是我们如何“查找在不同入职日期雇用的员工的姓名?”

enter image description here

最佳答案

使用计算加入日期的子查询加入 Employees 表。

where j.num = 1

返回在不同日期雇用的员工

where j.num > 1

退回同一天雇用的员工

select e.id, e.name, e.joining
from [SportsStore].[dbo].[Employees] e
inner join (select joining, count(*) num
from [SportsStore].[dbo].[Employees]
group by joining) j
on j.joining = e.joining
where j.num = 1;

+----+------+---------------------+
| id | name | joining |
+----+------+---------------------+
| 1 | abc | 01.01.2017 00:00:00 |
+----+------+---------------------+
| 2 | def | 01.01.2017 00:00:00 |
+----+------+---------------------+
| 5 | mno | 01.01.2017 00:00:00 |
+----+------+---------------------+

+----+------+---------------------+
| id | name | joining |
+----+------+---------------------+
| 3 | ghi | 02.01.2017 00:00:00 |
+----+------+---------------------+
| 4 | jkl | 03.01.2017 00:00:00 |
+----+------+---------------------+

可以在这里查看:http://rextester.com/OOO96554

关于sql - 查找在不同入职日期雇用的员工姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515676/

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