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
|
--DROP VIEW IF EXISTS 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"
|
|
||||||
|
|
||||||
FROM vw_bi_fct_trade_fulfillment_event AS FFE
|
CREATE OR REPLACE VIEW vw_bi_fct_open_position
|
||||||
WHERE FFE."Trade Category" = 'Physical'
|
|
||||||
GROUP BY
|
AS
|
||||||
FFE."inTradeId",
|
|
||||||
FFE."Trade Category",
|
WITH purchase_position AS (
|
||||||
FFE."Event Date",
|
SELECT
|
||||||
FFE."Trade Type";
|
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;
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE public.vw_bi_fct_open_position
|
ALTER TABLE public.vw_bi_fct_open_position
|
||||||
OWNER TO postgres;
|
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
|
CREATE OR REPLACE VIEW vw_bi_fct_trade_fulfillment_event AS
|
||||||
SELECT
|
SELECT
|
||||||
SM."intPurchaseLineId" AS "inTradeId",
|
SM."intPurchaseLineId" AS "inTradeId",
|
||||||
'Physical' AS "Trade Category",
|
'Physical' AS "Trade Category",
|
||||||
|
'Purchase' AS "Trade Type",
|
||||||
'Delivered' AS "Event Type",
|
'Delivered' AS "Event Type",
|
||||||
SM."dtmBLDate" AS "Event Date",
|
SM."dtmBLDate" AS "Event Date",
|
||||||
SM."dblQuantity" AS "Quantity"
|
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
|
AND COALESCE( SM."intPurchaseLineId" , 0 ) > 0
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT
|
SELECT
|
||||||
SM."intSaleLineId" AS "inTradeId",
|
SM."intSaleLineId" AS "inTradeId",
|
||||||
'Physical' AS "Trade Category",
|
'Physical' AS "Trade Category",
|
||||||
|
'Sale' AS "Trade Type",
|
||||||
'Delivered' AS "Event Type",
|
'Delivered' AS "Event Type",
|
||||||
SM."dtmBLDate" AS "Event Date",
|
SM."dtmBLDate" AS "Event Date",
|
||||||
SM."dblQuantity" AS "Quantity"
|
SM."dblQuantity" AS "Quantity"
|
||||||
|
|||||||
Reference in New Issue
Block a user