aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sql/dawn.sql17
1 files changed, 15 insertions, 2 deletions
diff --git a/sql/dawn.sql b/sql/dawn.sql
index dfafbae9..750a9a98 100644
--- a/sql/dawn.sql
+++ b/sql/dawn.sql
@@ -1556,7 +1556,11 @@ DECLARE
and_clause text;
BEGIN
IF strat IS NOT NULL THEN
- and_clause := 'AND strat = ltrim($2::text, ''SER_'')::strategy';
+ IF p_fund = 'ISOSEL' THEN
+ and_clause := 'AND split_part(strategy, ''/'', 2) = $2::text';
+ ELSE
+ and_clause := 'AND strat = ltrim($2::text, ''SER_'')::strategy';
+ END IF;
ELSE
and_clause := '';
END IF;
@@ -1576,8 +1580,17 @@ JOIN (SELECT a.security_id, a.maturity, sum(endbooknav) AS globeop_nav,
USING (security_id, maturity)', and_clause);
-- ELSIF p_fund = 'BOWDST' THEN
-- sqlquery := 'SELECT a.*, bowdst_index.admin_clean_nav, bowdst_index.admin_notional FROM list_cds_marks_pre($1, $2, $3) a LEFT JOIN bowdst_index USING (p_index, p_series, maturity) WHERE as_of_date=$1';
-ELSIF p_fund = 'BRINKER' OR p_fund = 'ISOSEL' THEN
+ELSIF p_fund = 'BRINKER' THEN
sqlquery := 'SELECT *, 0::double precision, 0::double precision FROM list_cds_marks_pre($1, $2, $3)';
+ELSIF p_fund = 'ISOSEL' THEN
+sqlquery := format('
+SELECT l.*, b.dirty_nav, b.position FROM list_cds_marks_pre($1, $2, $3) l
+LEFT JOIN index_version ON security_id=redindexcode
+LEFT JOIN index_maturity USING (INDEX, series, maturity)
+LEFT JOIN (
+SELECT ticker_bbg AS bbg_id, -sum(position) AS position, sum("end_mkt_value_[n]"+"bond_accrual_[n]") AS dirty_nav,
+sum(bond_accrual) FROM isosel_accrued WHERE instr_type=''Credit Default Swap''
+AND ticker_bbg IS NOT NULL %s GROUP BY period_end_date, ticker_bbg HAVING period_end_date=$1 ) b USING (bbg_id)', and_clause);
END IF;
RETURN QUERY EXECUTE sqlquery USING p_date, strat, p_fund;
END;