0

s# を取得したいテーブルがあります。ここで、s# には p1 がありますが、p2 はありません。

テーブル s
s# P#

s1 p1

s1 p2

s1 p3

s1p4

s2 p1

s2p3

s3 p2

s3 p3

私の結果はs2になるはずです。私が試したwhere句と結合はs1、s2を返しますが、これは間違っています。

4

1 に答える 1

1

これを試して:

SELECT s#
  FROM (SELECT s#, SUM(CASE WHEN p# = 'p1' THEN 1 ELSE 0 END) p1ct
                 , SUM(CASE WHEN p# = 'p2' THEN 1 ELSE 0 END) p2ct
          FROM s
         GROUP BY s#)
 WHERE p1ct > 0
   AND p2ct = 0;
于 2013-02-13T01:33:58.477 に答える