【发布时间】:2016-05-19 21:07:39
【问题描述】:
我正在尝试从 [Company] 表中选择与至少一个其他公司共享的所有公司行,相同数量的员工(来自具有 CompanyId 列的 [Employee] 表),其中每组各个员工共享同一组 LocationId([Employee] 表中的一列)并且比例相同。
因此,例如,该查询将选择两家公司,每家公司有 3 名员工,每个公司的 locationId 分别为 1、2 和 2。
[Employee]
EmployeeId | CompanyId | LocationId |
========================================
1 | 1 | 1
2 | 1 | 2
3 | 1 | 2
4 | 2 | 1
5 | 2 | 2
6 | 2 | 2
7 | 3 | 3
[Company]
CompanyId |
============
1 |
2 |
3 |
Returns the CompanyIds:
======================
1
2
之所以选择公司 ID 1 和 2,是因为它们与至少一家其他公司有共同之处: 1. 员工人数(3 名员工); 2. 与这些员工关联的 LocationId 的数量/比例(1 名员工的 LocationId 为 1,2 名员工的 LocationId 为 2)。
到目前为止,我想我想使用HAVING COUNT(?) > 1 声明,但我无法弄清楚细节。有没有人有什么建议?
【问题讨论】:
-
一些细节怎么样?这将是一个很好的起点。 spaghettidba.com/2015/04/24/…
-
不太清楚你在这里问什么。需要一些样本数据和预期输出。
-
抱歉没有更清楚。我添加了一些表格作为示例。
-
好的,所以您添加了员工表。这个查询的逻辑是什么?你的规则对我来说没有多大意义。并且不确定公司表与此有什么关系。
-
我在表格下方添加了有关预期结果的更多信息。如果这不能说明我在追求什么,请告诉我。
标签: sql sql-server tsql