diff options
| -rw-r--r-- | sql/dawn.sql | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql index e6d7cf8a..ed29b1dd 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, float_index cash_rate, currency currency, clearing_facility clearing_cp, roll_day roll_day, notional double precision) + 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) LANGUAGE plpgsql AS $function$ BEGIN - RETURN QUERY SELECT i.maturity_date, i.fixed_rate, i.fund, i.folder, i.float_index, i.currency, i.clearing_facility, i.roll_day, + 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 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.float_index, i.currency, i.clearing_facility, i.roll_day + 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 HAVING sum(CASE WHEN payreceive THEN i.notional ELSE -i.notional end) != 0; END; $function$ |
