plpgsql 関数を 4 回使用して Aged Debt Report を生成する Postgres VIEW があります。行に現在の期間の日付がある場合、その行の値は列 1 に入り、日付が先月の場合、値は列 2 に... というようになります。
パラメータを指定して関数を呼び出すと、そのパラメータは、今月の負債、先月の負債、2 か月前の負債、または最後の列でそれ以前のすべてを計算するように関数に指示します。
CREATE OR REPLACE FUNCTION agedebt4(beforem integer, d_details)
RETURNS double precision AS
$BODY$
/* This Func creates a column for Aged Debt Reporting from d_details table
The beforem parameter can be entered as 0,1,2 or 3
0 shows current period debt, 1 previous period, 2 cur period -2
and 3 shows current period less three AND EARLIER. */
DECLARE
curdt date =(CURRENT_DATE);
curdy text = substring(curdt,1,4);
curdm text = substring(curdt,6,2);
curdmi int = curdm::int;
curdyi int = curdy::int;
-- blah
-- blah
-- blah
ビューには
SELECT agedebt4(0,d_details) AS "Current Debt", agedebt4(1,d_details)
AS "CurrPeriod -1 Debt", agedebt4(2,d_details) AS "CurrPeriod -2 Debt", -- etc
しかし、関数内で列のタイトルを変更したいと考えています。だから私は実際にOct2013 Debt
Sep2013 Debt
Aug2013 Debt
July2013+
Earlier
...(実行の月に応じて明らかに月の名前)...を出力に表示することができました。関数名を agedebt4 から変更したくありません。それで問題ありません。表示されている列のタイトルを修正する関数が必要です。
これはできますか?