Push fct_open_position and fct_trade_fullfillment_event
This commit is contained in:
@@ -1,35 +1,73 @@
|
||||
CREATE OR REPLACE VIEW vw_bi_fct_open_position
|
||||
AS
|
||||
-- Sign physical contracted quantities
|
||||
SELECT
|
||||
FTL."intTradeId",
|
||||
FTL."Trade Category",
|
||||
FTL."Delivery Date",
|
||||
CASE
|
||||
WHEN FTL."Trade Type" = 'Purchase' THEN 1
|
||||
ELSE -1
|
||||
END * FTL."Quantity" AS "Quantity"
|
||||
FROM vw_bi_fct_trade_line AS FTL
|
||||
UNION ALL
|
||||
-- Deduct delivered quantities
|
||||
SELECT
|
||||
FFE."inTradeId",
|
||||
FFE."Trade Category",
|
||||
FFE."Event Date" AS "Delivery Date",
|
||||
CASE
|
||||
WHEN FFE."Trade Type" = 'Purchase' THEN -1
|
||||
ELSE 1
|
||||
END * SUM(FFE."Quantity") AS "Quantity"
|
||||
--DROP VIEW IF EXISTS vw_bi_fct_open_position;
|
||||
|
||||
CREATE OR REPLACE VIEW vw_bi_fct_open_position
|
||||
|
||||
AS
|
||||
|
||||
WITH purchase_position AS (
|
||||
SELECT
|
||||
Contracts."intTradeId",
|
||||
Contracts."Trade Category",
|
||||
Contracts."Trade Type",
|
||||
Contracts."Delivery Date",
|
||||
TO_CHAR(Contracts."Delivery Date", 'YYYY-MM') AS "delivery_month",
|
||||
TO_CHAR(Contracts."Delivery Date", 'Mon YYYY') AS "delivery_month_label",
|
||||
Contracts."Quantity",
|
||||
Contracts."Quantity" - COALESCE( Delivery."delivered_quantity" , 0 ) AS "Open Position Quantity"
|
||||
FROM vw_bi_fct_trade_line AS Contracts
|
||||
LEFT JOIN (
|
||||
-- Deduct delivered quantities
|
||||
SELECT
|
||||
FFE."inTradeId",
|
||||
SUM(FFE."Quantity") AS "delivered_quantity"
|
||||
FROM vw_bi_fct_trade_fulfillment_event AS FFE
|
||||
WHERE FFE."Trade Category" = 'Physical'
|
||||
AND FFE."Trade Type" = 'Purchase'
|
||||
GROUP BY
|
||||
FFE."inTradeId"
|
||||
) AS Delivery ON Contracts."intTradeId" = Delivery."inTradeId"
|
||||
WHERE 1=1
|
||||
AND Contracts."Trade Category" = 'Physical'
|
||||
AND Contracts."Trade Type" = 'Purchase'
|
||||
)
|
||||
,sale_position AS (
|
||||
SELECT
|
||||
Contracts."intTradeId",
|
||||
Contracts."Trade Category",
|
||||
Contracts."Trade Type",
|
||||
Contracts."Delivery Date",
|
||||
TO_CHAR(Contracts."Delivery Date", 'YYYY-MM') AS "delivery_month",
|
||||
TO_CHAR(Contracts."Delivery Date", 'Mon YYYY') AS "delivery_month_label",
|
||||
Contracts."Quantity",
|
||||
(Contracts."Quantity" - COALESCE( Delivery."delivered_quantity" , 0 ) ) * (-1) AS "Open Position Quantity"
|
||||
FROM vw_bi_fct_trade_line AS Contracts
|
||||
LEFT JOIN (
|
||||
-- Deduct delivered quantities
|
||||
SELECT
|
||||
FFE."inTradeId",
|
||||
SUM(FFE."Quantity") AS "delivered_quantity"
|
||||
FROM vw_bi_fct_trade_fulfillment_event AS FFE
|
||||
WHERE FFE."Trade Category" = 'Physical'
|
||||
AND FFE."Trade Type" = 'Sale'
|
||||
GROUP BY
|
||||
FFE."inTradeId"
|
||||
) AS Delivery ON Contracts."intTradeId" = Delivery."inTradeId"
|
||||
WHERE 1=1
|
||||
AND Contracts."Trade Category" = 'Physical'
|
||||
AND Contracts."Trade Type" = 'Sale'
|
||||
)
|
||||
|
||||
SELECT *
|
||||
FROM purchase_position
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT *
|
||||
FROM sale_position;
|
||||
|
||||
FROM vw_bi_fct_trade_fulfillment_event AS FFE
|
||||
WHERE FFE."Trade Category" = 'Physical'
|
||||
GROUP BY
|
||||
FFE."inTradeId",
|
||||
FFE."Trade Category",
|
||||
FFE."Event Date",
|
||||
FFE."Trade Type";
|
||||
|
||||
ALTER TABLE public.vw_bi_fct_open_position
|
||||
OWNER TO postgres;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
|
||||
--DROP VIEW IF EXISTS vw_bi_fct_trade_fulfillment_event;
|
||||
|
||||
CREATE OR REPLACE VIEW vw_bi_fct_trade_fulfillment_event AS
|
||||
SELECT
|
||||
SM."intPurchaseLineId" AS "inTradeId",
|
||||
'Physical' AS "Trade Category",
|
||||
'Purchase' AS "Trade Type",
|
||||
'Delivered' AS "Event Type",
|
||||
SM."dtmBLDate" AS "Event Date",
|
||||
SM."dblQuantity" AS "Quantity"
|
||||
@@ -10,8 +14,9 @@ CREATE OR REPLACE VIEW vw_bi_fct_trade_fulfillment_event AS
|
||||
AND COALESCE( SM."intPurchaseLineId" , 0 ) > 0
|
||||
UNION ALL
|
||||
SELECT
|
||||
SM."intSaleLineId" AS "inTradeId",
|
||||
SM."intSaleLineId" AS "inTradeId",
|
||||
'Physical' AS "Trade Category",
|
||||
'Sale' AS "Trade Type",
|
||||
'Delivered' AS "Event Type",
|
||||
SM."dtmBLDate" AS "Event Date",
|
||||
SM."dblQuantity" AS "Quantity"
|
||||
|
||||
Reference in New Issue
Block a user