# Customer Contract and Status Dimension Table
CREATE TABLE Dim_Cust_Contract_Status AS (
SELECT
ROW_NUMBER() OVER (ORDER BY K.Customer_ID) AS Customer_Contract_Status_SK,
K.Customer_ID,
K.Contract_GUID,
K.Contract_Start_Date,
K.Contract_End_Date,
C.Status,
C.Valid_From,
C.Valid_To,
CASE
WHEN C.Valid_From >= K.Contract_Start_Date THEN C.Valid_From
ELSE K.Contract_Start_Date
END AS From_Date,
CASE
WHEN C.Valid_To <= K.Contract_End_Date THEN C.Valid_To
ELSE K.Cntract_End_Date
END AS To_Date
FROM Dim_Customer_Contract K
LEFT JOIN Dim_Customer C
ON C.Valid_To >= K.Contract_Start_Date
AND C.Valid_From <= K.Contract_End_Date
);
SELECT
Customer_Contract_Status_SK
P.Product,
P.Purchase_Date
FROM Dim_Customer_Contract_status D
LEFT JOIN Fact_Purchase_Orders P
ON P.Purchase_Date BETWEEN D.From_Date AND D.To_Date;
Last active
February 7, 2020 23:14
-
-
Save alcheng10/b771761d7166dbe7aafafe116c9a3626 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment