You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

26 lines
963 B

-- Materialized View: K-1 Summary by Partnership/Year
-- Aggregates K1LineItem amounts grouped by partnership, tax year, and box key.
-- Used for efficient dashboard queries. Refreshed via CONCURRENTLY after K-1 changes.
CREATE MATERIALIZED VIEW mv_k1_partnership_year_summary AS
SELECT
kd."partnershipId" AS partnership_id,
kd."taxYear" AS tax_year,
li.box_key,
bd.label,
bd.section,
SUM(li.amount) AS total_amount,
COUNT(*) AS line_count
FROM k1_line_item li
JOIN "KDocument" kd ON li.k_document_id = kd.id
JOIN k1_box_definition bd ON li.box_key = bd.box_key
WHERE li.is_superseded = false
GROUP BY kd."partnershipId", kd."taxYear", li.box_key, bd.label, bd.section
WITH NO DATA;
-- Required for REFRESH MATERIALIZED VIEW CONCURRENTLY
CREATE UNIQUE INDEX idx_mv_k1_pys_unique
ON mv_k1_partnership_year_summary (partnership_id, tax_year, box_key);
-- Initial population
REFRESH MATERIALIZED VIEW mv_k1_partnership_year_summary;