commit
This commit is contained in:
91
SQL/Contracts with MTM info.sql
Normal file
91
SQL/Contracts with MTM info.sql
Normal file
@@ -0,0 +1,91 @@
|
||||
-- Contracts with an MtM strategy, pricing_component details, and latest valuation snapshot
|
||||
SELECT
|
||||
'Purchase' AS side,
|
||||
pp.number AS contract,
|
||||
pl.quantity AS contracted_qty,
|
||||
ms.name AS strategy_name,
|
||||
msc.name AS scenario_name,
|
||||
msc.valuation_date,
|
||||
msc.use_last_price,
|
||||
cur.symbol AS strategy_currency,
|
||||
-- MtM component (pricing_component linked via strategy)
|
||||
pc_mtm.price_source_type AS component_price_source,
|
||||
pc_mtm.ratio AS component_ratio_pct,
|
||||
ft.name AS component_fix_type,
|
||||
pi.price_desc AS component_curve,
|
||||
pc_cal.name AS component_calendar,
|
||||
pc_mtm.auto AS component_auto,
|
||||
pc_mtm.fallback AS component_fallback,
|
||||
-- Latest valuation (physical price row)
|
||||
vv.date AS last_valuation_date,
|
||||
vv.price AS last_valuation_price,
|
||||
vv.quantity AS last_valuation_qty,
|
||||
vv.amount AS last_valuation_amount,
|
||||
vv.mtm AS portfolio_mtm
|
||||
FROM purchase_strategy ps
|
||||
JOIN purchase_line pl ON pl.id = ps.line
|
||||
JOIN purchase_purchase pp ON pp.id = pl.purchase
|
||||
JOIN mtm_strategy ms ON ms.id = ps.strategy
|
||||
JOIN mtm_scenario msc ON msc.id = ms.scenario
|
||||
JOIN currency_currency cur ON cur.id = ms.currency
|
||||
LEFT JOIN pricing_component pc_mtm ON pc_mtm.strategy = ms.id
|
||||
LEFT JOIN price_fixtype ft ON ft.id = pc_mtm.fix_type
|
||||
LEFT JOIN price_price pi ON pi.id = pc_mtm.price_index
|
||||
LEFT JOIN price_calendar pc_cal ON pc_cal.id = pc_mtm.calendar
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT date, price, quantity, amount, mtm
|
||||
FROM valuation_valuation
|
||||
WHERE line = pl.id
|
||||
AND type = 'pur. priced'
|
||||
AND reference = 'Purchase/Physic'
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
) vv ON TRUE
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'Sale',
|
||||
ss.number,
|
||||
sl.quantity,
|
||||
ms.name,
|
||||
msc.name,
|
||||
msc.valuation_date,
|
||||
msc.use_last_price,
|
||||
cur.symbol,
|
||||
pc_mtm.price_source_type,
|
||||
pc_mtm.ratio,
|
||||
ft.name,
|
||||
pi.price_desc,
|
||||
pc_cal.name,
|
||||
pc_mtm.auto,
|
||||
pc_mtm.fallback,
|
||||
vv.date,
|
||||
vv.price,
|
||||
vv.quantity,
|
||||
vv.amount,
|
||||
vv.mtm
|
||||
FROM sale_strategy sa
|
||||
JOIN sale_line sl ON sl.id = sa.sale_line
|
||||
JOIN sale_sale ss ON ss.id = sl.sale
|
||||
JOIN mtm_strategy ms ON ms.id = sa.strategy
|
||||
JOIN mtm_scenario msc ON msc.id = ms.scenario
|
||||
JOIN currency_currency cur ON cur.id = ms.currency
|
||||
LEFT JOIN pricing_component pc_mtm ON pc_mtm.strategy = ms.id
|
||||
LEFT JOIN price_fixtype ft ON ft.id = pc_mtm.fix_type
|
||||
LEFT JOIN price_price pi ON pi.id = pc_mtm.price_index
|
||||
LEFT JOIN price_calendar pc_cal ON pc_cal.id = pc_mtm.calendar
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT date, price, quantity, amount, mtm
|
||||
FROM valuation_valuation
|
||||
WHERE line = sl.id
|
||||
AND type = 'sale priced'
|
||||
AND reference = 'Sale/Physic'
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
) vv ON TRUE
|
||||
|
||||
ORDER BY side, contract;
|
||||
|
||||
|
||||
select * from price_price
|
||||
Reference in New Issue
Block a user