Cześć, dostałem do napisania 10 poleceń w PLPGSQL. W jednym z nich mam wykorzystać polecenie UPDATE i CURSOR aby zmodyfikować dane w tabeli, niestety ty napotkałem na problem.


CREATE OR REPLACE FUNCTION aktualizuj_sredni_rok() RETURNS BOOLEAN AS $$
DECLARE 
C111 CURSOR FOR 
SELECT * FROM ZAWODNICY RIGHT JOIN DRUZYNY USING (D_ID)
FOR UPDATE OF DRUZYNY;
ALA NUMERIC;
C_REC RECORD;
BEGIN

SELECT ROUND(AVG(Z.Z_ROK_URODZENIA),2)
INTO ALA
FROM ZAWODNICY Z RIGHT JOIN DRUZYNY D USING (D_ID)
WHERE Z.D_NAZWA=C_REC.D_ID
GROUP BY D.D_NAZWA;

FOR c_rec IN C111 LOOP

  UPDATE DRUZYNY SET DRUZYNY.d_sredni_rok_urodzenia = ALA
  WHERE CURRENT OF C111;
   
END LOOP;
COMMIT;
 CLOSE C111;
  RETURN TRUE;

END; $$
LANGUAGE PLPGSQL; 

w zmiennej ALA powinna się znaleźć średnia zawodników z danej drużyny.
Moj problem polega na tym nie potrafię połączyć kursora z polecenie select z którego potrzebuję średniej .