2013-11-01 4 views
0

У меня есть Postgres VIEW, который использует функцию plpgsql четыре раза для создания отчета о погашении задолженности. Если строка имеет дату в текущем периоде, значение в этой строке идет в столбце 1, если дата в прошлом месяце, то значение находится в столбце 2 ... и так далее.
Я вызываю функцию с параметром, и этот параметр сообщает функции, чтобы рассчитать долг в этом месяце, долг в прошлом месяце, долг в 2 месяца назад - или в последней колонке все до этого.Можно ли изменить название столбца в функции PostgreSQL?

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 

The View имеет

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 DebtSep2013 DebtAug2013 DebtJuly2013+Earlier ... (очевидно, месячные имена в зависимости от месяца исполнения) ... показать на выходе. Я не хочу менять имя функции из ageebt4 - все в порядке. Я хочу, чтобы функция изменила отображаемое название столбца.

Можно ли это сделать?

ответ

1

Уверен, поэтому вы не можете изменить вид (метку столбца) из внутренней функции. Основная причина - время. Ярлык указан и жестко закодирован перед любым исполнением. Поэтому вы не можете изменить его позже - когда функция выполняется. То же самое происходит с типами данных - оно фиксируется перед любым исполнением.

Смежные вопросы