0

私は2つの列meetingIDとcaseIDを持つテーブルを持っています。MeetingIDは3つのカテゴリのいずれかからのものである可能性があるため、サブクエリを使用して、そのカテゴリに一致する別のテーブルからのmeetingIDのみを返すことにより、特定のカテゴリを選択します。

このmeetingIDのリストを取得したら、そのうちの2つのcaseIDを持っているものの数を数えたいと思います。また、いくつかのcaseIDをカウントから除外する必要がありますが、それは今のところ関係ありません。

これが私がこれまでに持っているコードです。

  SELECT COUNT( meetingID ) , meetingID
FROM case_meeting
WHERE meetingID
 IN (

SELECT DISTINCT a.meetingID
FROM case_meeting a
INNER JOIN meeting b ON a.meetingID = b.meetingID
WHERE b.categoryID =  '1'
)
GROUP BY meetingID
HAVING COUNT( caseID ) =2

私が抱えている主な問題は、実際には、2つのcaseIDを持つmeetingIDのリストを返すのではなく、それらの数を正常にカウントするコードを作成することです。

現時点では、コードは行数が必要な数値と一致し、各行が「2」であるリストを返しています。

4

1 に答える 1

1

UNIQUE制約がある場合(meetingID, caseID)

SELECT cm.meetingID
FROM case_meeting AS cm
  INNER JOIN meeting AS m 
    ON m.meetingID = cm.meetingID
WHERE m.categoryID = 1
GROUP BY cm.meetingID
HAVING COUNT(*) = 2 ;

ない場合は、最後の行を次のように変更します。

HAVING COUNT(DISTINCT cm.caseID) = 2 ;
于 2013-01-17T15:15:53.843 に答える