SELECT a.protocol_number, b.STATUS_NAME, COUNT(*) FROM PARTICIPANTS a LEFT JOIN PROTOCOLS b ON a.PROTOCOL_NUMBER = b.PROTOCOL_NUMBER GROUP BY a.PROTOCOL_NUMBER, b.STATUS_NAME HAVING count(*) = 1 AND b.STATUS_NAME = 'OPEN';
我想将这些协议的状态更新为CLOSED,但找不到运行正常的查询。我试过这个但它永远挂着:
UPDATE
PROTOCOLS p1
SET
p1.STATUS_NAME = 'CLOSED'
WHERE
p1.protocol_Number IN (
SELECT
PROTOCOL_NUMBER
FROM
(
SELECT
a.protocol_number, b.STATUS_NAME, COUNT(*)
FROM
PARTICIPANTS a
LEFT JOIN PROTOCOLS b ON
a.PROTOCOL_NUMBER = b.PROTOCOL_NUMBER
GROUP BY
a.PROTOCOL_NUMBER, b.STATUS_NAME
HAVING
count(*) = 1
AND b.STATUS_NAME = 'OPEN');