sql >> Databasteknik >  >> RDS >> PostgreSQL

Inkorporera en LOOP i en SQL

Problemet är att anropa funktionen med argument men inte specificera några när funktionen skapas. Så du behöver något som (ej testat):

CREATE FUNCTION "UpdatePMPM"(nbr_mem_months integer, effectivdate date, some_arg varchar) RETURNS void
    LANGUAGE plpgsql
AS
$$
DECLARE
    ym varchar := to_char(effectivedate,'YYYYMM');
BEGIN
        FOR r IN  1..nbr_mem_months LOOP
            
            UPDATE elan.pmpm set mbrmonths = mbrmonths+1 where yyyyymm = ym;
            effectivedate = effectivedate + interval '1 month';
            ym=to_char(effectivedate,'YYYYMM');
        END LOOP;
    RETURN;
END
$$;

Av felet framgår det inte vad det tredje argumentet är tänkt att vara, så det kommer att förtydligas från dig.




  1. sök kod i servlet till mysql?

  2. sql - enkel fråga för att returnera värden som inte finns

  3. MySQL och CASE WHEN med en rad värden

  4. EEE MMM dd HH:mm:ss ZZZ åååå datumformat till java.sql.Date