sql >> Databáze >  >> RDS >> PostgreSQL

Začlenění LOOP do SQL

Problém je ve volání funkce s argumenty, ale bez zadávání žádných při vytváření funkce. Takže potřebujete něco jako (netestováno):

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

Z chyby není jasné, jaký má být třetí argument, takže vám to vyjasníte.




  1. SCD typ 2

  2. NÁVRAT NA POUŽITÍ Oracle v Javě (JDBC, Připravené prohlášení)

  3. Jak zaokrouhlit na nejbližších X minut s PL/pgSQL?

  4. Jak seskupit přehled v Accessu 2016