別のテーブルの特定のロールのカウントが > 1 であるテーブルの値を 1 に設定する必要があります。
テーブル cursillo.members にはフィールド memid と hsd があります。テーブル cursillo.teams にはフィールド memid (2 つの間のリンク) があり、movement と呼ばれるフィールドと role と呼ばれる別のフィールドがあります。
私が達成しようとしているのは、次のようなものです。
update cursillo.members_eligible p, cursillo.teams pp
set p.hsd=1
where p.memid = pp.memid AND (pp.role = 'HSD' OR pp.role = 'SD')
and pp.movement = 'Cursillo' AND count(pp.role) > 1;
またはこれ:
update members_eligibile
set hsd=1
from teams
where teams.memid=members_eligible.memid
and (teams.role = 'HSD' OR teams.role = 'SD')
and teams.movement = 'Cursillo'
and count(teams.role) > 1;
つまり、特定の memid が cursillo.teams テーブルに複数のレコードを持ち、ロールの値が HSD または SD のいずれかと等しい場合、cursillo.members_eligible.hsd を 1 に設定します。
count() 部分を処理する方法がわかりません。
ありがとう、マイク・リード