aboutsummaryrefslogtreecommitdiffstats
path: root/sql/dawn.sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql/dawn.sql')
-rw-r--r--sql/dawn.sql8
1 files changed, 4 insertions, 4 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql
index ed29b1dd..277ad0d9 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -1923,15 +1923,15 @@ END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION list_ir_positions(p_date date, p_fund fund)
- RETURNS TABLE(maturity_date date, fixed_rate double precision, fund fund, folder strategy, cash_account TEXT, float_index cash_rate, currency currency, clearing_facility clearing_cp, roll_day roll_day, notional double precision)
+ RETURNS TABLE(date date, effective_date date, maturity_date date, fixed_rate double precision, fund fund, folder strategy, cash_account text, float_index cash_rate, currency currency, clearing_facility clearing_cp, roll_day roll_day, notional double precision, ids integer[])
LANGUAGE plpgsql
AS $function$
BEGIN
- RETURN QUERY SELECT i.maturity_date, i.fixed_rate, i.fund, i.folder, i.cash_account, i.float_index, i.currency, i.clearing_facility, i.roll_day,
- sum(CASE WHEN payreceive THEN i.notional ELSE -i.notional end) AS notional
+ RETURN QUERY SELECT p_date, i.effective_date, i.maturity_date, i.fixed_rate, i.fund, i.folder, i.cash_account, i.float_index, i.currency, i.clearing_facility, i.roll_day,
+ sum(CASE WHEN payreceive THEN i.notional ELSE -i.notional end) AS notional, array_agg(i.id)
FROM irs i
WHERE i.fund = $2 AND i.trade_date <= $1
- GROUP BY i.maturity_date, i.fixed_rate, i.fund, i.folder, i.cash_account, i.float_index, i.currency, i.clearing_facility, i.roll_day
+ GROUP BY i.effective_date, i.maturity_date, i.fixed_rate, i.fund, i.folder, i.cash_account, i.float_index, i.currency, i.clearing_facility, i.roll_day
HAVING sum(CASE WHEN payreceive THEN i.notional ELSE -i.notional end) != 0;
END;
$function$