sql >> Database teknologi >  >> RDS >> PostgreSQL

Inkorporering af en LOOP i en SQL

Problemet er at kalde funktionen med argumenter, men ikke angive nogen, når funktionen oprettes. Så du har brug for noget som (ikke testet):

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
$$;

Ud fra fejlen er det ikke klart, hvad det tredje argument formodes at være, så det er en afklaring fra dig.




  1. Sådan finder du den optimale unikke identifikator i en tabel i SQL Server:sp_special_columns

  2. Solve kan ikke udføre en DML-handling i en forespørgsel

  3. en fejl bliver ved med at dukke op i mine koder (forbindelsen er allerede åben)

  4. Delphi SQL Datolæsningsproblem