【发布时间】:2015-03-29 15:43:59
【问题描述】:
您好,抱歉标题没有提供信息。想不出更好的了。所以,我的问题是这样的。我在两个表中有两个关键变量,table1 只有 key1,table2 同时具有 key1 和 key2 以将 key1 链接到 key2。表 1 也有一个特定年份的变量。
现在问题来了。我想知道的是所有 key1 变量的列表,这些变量链接到这样的 key2 变量,这些变量在同一年变量上有多个 key1 变量。所以 table1 说 2000 年的 key1 案例 A 和 B 链接到 table2 中的一个相同的 key2 变量。所以实际上,我对特定年份的单个 key2 的 key1 双打感兴趣。
SELECT query.key2
FROM (
SELECT DISTINCT a.key1, b.key2, a.year
FROM table1 AS a JOIN table2 AS b ON a.key1=b.key1
WHERE a.year IS NOT NULL
)
AS query
GROUP BY query.key2, query.year
HAVING COUNT(*)>1
这是我用来获取同年有超过 1 个 key1 案例链接的 key2 案例列表的代码。要获取链接到这些 key2 案例的所有 key1 案例的列表,只需将其添加为 table2 上的查询的子查询即可。但这会导致所有与特定 key2 相关联的 key1 案例。我想要的是同年双打。我对这个看似简单的任务感到目瞪口呆,我不能在 SELECT 中输入键,因为它没有在 group by 子句中列出,并且再次在子查询中使用 key2 案例不会过滤掉来自不同年份的不需要的 key1 案例。有什么想法吗?
【问题讨论】:
-
你能添加预期的输出和你的表格数据吗?
标签: sql sql-server group-by