2

我有下表,并试图根据 id 跨行分组。我希望访问返回类型包含相同 ID 的 S 和 A 的所有情况(a19),但不返回 S 或 A 彼此不存在的实例(a22 和 a33)。

最简单的方法是什么?

+---+----+--------------+
|id |type|    text      |
+---+----+--------------+
 a19   S     S1
 a19   A     A1
 a19   A     A1
 a22   Y     A1
 a33   S     S1
+---+----+--------------+
4

1 回答 1

3

这是一个返回所有具有 A 和 S 类型的 id 的查询:

SELECT subQuery.id
FROM (SELECT group_table.id
FROM group_table
WHERE (((group_table.type) IN ("A","S")))
GROUP BY group_table.id, group_table.type)  AS subQuery
GROUP BY subQuery.id
HAVING Count(subQuery.id) = 2

您可以通过将“...IN ("A", "S")..."替换为"SELECT FilterType FROM FilterTable"并更改"...Count(subQuery.id) = 2. .."到例如"...Count(subQuery.id) = SELECT COUNT(FilterType) FROM FilterTable..."

于 2012-05-02T06:56:04.570 回答