sql >> データベース >  >> RDS >> PostgreSQL

LOOPをSQLに組み込む

    問題は、引数を使用して関数を呼び出すことですが、関数の作成時に引数を指定していません。したがって、次のようなものが必要です(テストされていません):

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

    エラーから、3番目の引数が何であるかが明確ではないので、それはあなたからの明確化になります。




    1. SQLをMySQLコマンドラインに貼り付ける

    2. MySQLの結果をJSONエンコード

    3. 単一テーブルのエンティティ生成

    4. ループなしのキーによる多次元配列の値の合計