2

以下のテーブルがあり、ID に基づいて行をグループ化しようとしています。type に同じ ID (a19) の S と A が含まれるすべてのケースを返すアクセスが必要ですが、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 に答える