aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sql/mlpdb.sql13
1 files changed, 13 insertions, 0 deletions
diff --git a/sql/mlpdb.sql b/sql/mlpdb.sql
index 0705fd44..ed4facd8 100644
--- a/sql/mlpdb.sql
+++ b/sql/mlpdb.sql
@@ -201,3 +201,16 @@ CREATE OR REPLACE FUNCTION curve_quotes(varchar(4), date) RETURNS
ON b.curve_ticker = a.curve_ticker GROUP by company_id ORDER BY t;
END;
$$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION curve_quotes_fmt(varchar(4), date) RETURNS
+ TABLE(cds_ticker text, date date, spread_curve text, upfront_curve text, recovery_curve text) AS $$
+ BEGIN
+ RETURN QUERY SELECT max(ticker) AS t, max(a.date),
+ string_agg(to_char((a.runningbid+a.runningask)/2, 'FM999'), ',' ORDER BY tenor),
+ string_agg(to_char((a.upfrontbid+a.upfrontask)/2, 'FM99D99'), ',' ORDER BY tenor),
+ string_agg(to_char(a.Recovery, 'FM0D99'), ',' ORDER BY tenor) FROM historical_cds_quotes($2) a RIGHT JOIN
+ (SELECT generate_series(1, 8) AS tenor, unnest(cds_curve) AS curve_ticker, ticker, company_id
+ FROM index_members($1, $2)) b
+ ON b.curve_ticker = a.curve_ticker GROUP by company_id ORDER BY t;
+ END;
+ $$ LANGUAGE plpgsql;