This function implements a Simplified version of Slowly Changing Dimension Type 2 to merge new and current data while maintaining historical records. The function deactivates all the old records and activates new ones, ensuring a history-preserving update strategy. The difference between a standard SCD2 is that this simplified version applies no checks on the data, deactivating all the old records and activating the new ones, even if some of the old records are still active.
Examples
currentData_ <- tibble::tribble(
~id, ~colA, ~colB, ~colC, ~IS_ACTIVE, ~START_DATE, ~END_DATE,
1, "a1", "b1", "c1", TRUE, Sys.time(), as.Date(NA),
2, "a2", "b2", "c2", TRUE, Sys.time(), as.Date(NA),
3, "a3", "b3", "c3", TRUE, Sys.time(), as.Date(NA))
newData_ <- tibble::tribble(
~id, ~colA, ~colB, ~colC,
1, "a1", "b1", "c1",
2, "a2", "b2", "c20",
3, "a4", "b4", "c4")
mergedData <- SSCD2(newData = newData_, currentData = currentData_)
