You are on page 1of 15

S_customer

Customer_id (PK) First_name Mobile Address1 Zipcode Country


100000 Sravanthi 1234678906 Ashland 400027 India
100001 Sneha 9045454445 No.2 VGP nagar 609090 India
100002 Swathi 3485724543 Framingham 1921 USA
100003 Suresh 5678453233 Lake street 7745 Australia
100004 Sridhar 7650099124 Pond Street 77723 Canada
Dim_Customer

Customer_id (PK) First_name Mobile Address1 Zipcode Country


100000 Sravanthi 1234678906 Ashland 400027 India
100001 Sneha 9045454445 No.2 VGP nagar 609090 India
100002 Swathi 3485724543 Framingham 1921 USA
100003 Suresh 5678453233 Lake street 7745 Australia
100004 Sridhar 7650099124 Pond Street 77723 Canada
S_customer

Customer_id (First_nameMobile Address1 Zipcode Country


100000 Sravanthi 7898779877 Ashland 400027 India
100001 Sneha 3454545454 G3, Block 4 345444 India
100002 Swathi 9049044490 Sai Nagar, 1st Ava 234554 USA
100003 Suresh 9090809324 B1, Green Valley 909091 Japan
100004 Sridhar 7650099124 Pond Street 77723 Canada

NEW INSERT

Update INSERT
Update

create table S_customer_scd


(
Customer_id number(10) primary key,
First_namevarchar2(30),
Mobile varchar2(30),
Address1 varchar2(30),
Zipcode number(6),
Country varchar2(30));

create table t_customer_scd_flag


(
Customer_key number(10) primary key,
Customer_id number(10),
First_namevarchar2(30),
Mobile varchar2(30),
Address1 varchar2(30),
Zipcode number(6),
Country varchar2(30),
flag number(1));
create table t_customer_scd_version
(
Customer_key number(10) primary key,
Customer_id number(10),
First_namevarchar2(30),
Mobile varchar2(30),
Address1 varchar2(30),
Zipcode number(6),
Country varchar2(30),
version number(4));

create table t_customer_scd_date


(
Customer_key number(10) primary key,
Customer_id number(10),
First_namevarchar2(30),
Mobile varchar2(30),
Address1 varchar2(30),
Zipcode number(6),
Country varchar2(30),
eff_date date,
end_date date);
Look up Active Flag=1
T_Customer_Flag

cust_key(PKCustomer_First_name Mobile Address1 Zipcode Country


1 100000 Sravanthi 7898779877 Ashland 400027 India
2 100001 Sneha 5435454545 G3, Block 4 989989 India
3 100002 Swathi 9049044490 Sai Nagar, 1st Ava 234554 USA
4 100003 Suresh 9090809324 B1, Green Valley 909091 Japan
5 100004 Sridhar 7650099124 Pond Street 77723 Canada
6 100001 Sneha 3454545454 G3, Block 4 989989 India
7 100001 Sneha 3454545454 G3, Block 4 345444 India

Flag=1

Flag=1
Flag=0
Flag
1
0
1
1
1
0
1
S_customer

Customer_iFirst_nameMobile Address1 Zipcode Country


100000 Sravanthi 1234678906 Ashland 400027 India
100001 Sneha 9090909090 rk nagar 453254 India
100002 Swathi 7659874565 Framingham 1921 USA
100003 Suresh 5678453233 G1, Balaji Nagar 7745 Australia
100004 Sridhar 7650099124 Pond Street 77723 Canada

NEW INSERT version=1

Update INSERT version=version+1


Look up Active max(version)
T_Customer_Version

cust_key(PCustomer_id First_nameMobile Address1 Zipcode Country Version


1 100000 Sravanthi 1234678906 Ashland 400027 India 1
2 100001 Sneha 8876563346 No.2 VGP n 609090 India 1
3 100002 Swathi 7659874565 Framingha 1921 USA 1
4 100003 Suresh 5678453233 Lake street 7745 Australia 1
5 100004 Sridhar 7650099124 Pond Stree 77723 Canada 1
6 100001 Sneha 9090909090 No.2 VGP n 609090 India 2
7 100003 Suresh 5678453233 G1, Balaji 7745 Australia 2
8 100001 Sneha 9090909090 No.2 VGP n 453254 India 3
9 100001 Sneha 9090909090 rk nagar 453254 India 4

Look up override query

version=version+1 select column_names from T_Customer_Version


where (cust_id,version) in (select cust_id,max(version) f
T_Customer_Version group by cust_id);
ustomer_Version
ct cust_id,max(version) from
S_customer

Customer_iFirst_nameMobile Address1 Zipcode Country


100000 Sravanthi 1234678906 rtretr retre 400027 India
100001 Sneha 9090909090 No.2 VGP nagar 453254 India
100002 Swathi 3545454544 Framingham 1921 USA
100003 Suresh 5678453233 G1, Balaji Nagar 7745 Australia
100004 Sridhar 7650099124 Pond Street 77723 CA

NEW INSERT

Update INSERT
Update
Look up Active end_date=12/31/9999
T_Customer_Date

cust_keCustomer_id First_nameMobile Address1 Zipcode Country


1 100000 Sravanthi 1234678906 Ashland 400027 India
2 100001 Sneha 9090909090 No.2 VGP n 453254 India
3 100002 Swathi 7659874565 Framingha 1921 USA
4 100003 Suresh 5678453233 G1, Balaji 7745 Australia
5 100004 Sridhar 7650099124 Pond Stree 77723 Canada
6 100000 Sravanthi 1234678906 rtretr retre 400027 India

eff_date=sysdate end_date=12/31/9999

eff_date=sysdate end_date=12/31/9999
end_date=sys_date
end_date=12/31/9999

Eff_date End_date
10/27/2020 8/14/2021
10/27/2020 12/31/9999
10/27/2020 12/31/9999
10/27/2020 12/31/9999
10/27/2020 12/31/9999
8/14/2021 12/31/9999
S_customer

Cust_id (PK) First_name Mobile Addr Zipcode Country


1 Sravanthi 1234678906 Ashland 400027 India
2 Sneha 9009043423 No.2 VGP nagar 609090 India
3 Swathi 7659874565 Framingham 1921 USA
4 Suresh 5678453233 Lake street 7745 Australia
5 Sridhar 7650099124 Pond Street 77723 Canada

create table S_customer_scd


(
Customer_id number(10) primary key,
First_name varchar2(30),
Mobile varchar2(30),
Address1 varchar2(30),
Zipcode number(6),
Country varchar2(30));
Dim_cust_scd3

Cust_id (PK) First_name Mobile Prev_Mobile Address Prev_addr Zipcode


1 Sravanthi 1234678906 Ashland 400027
2 Sneha 9009043423 5934543545 No.2 VGP nagar 609090
3 Swathi 7659874565 Framingham 1921
4 Suresh 5678453233 Lake street 7745
5 Sridhar 7650099124 Pond Street 77723

create table dim_cust_scd3


(
Customer_id number primary key,
First_name varchar2(30),
Mobile varchar2(30),
Prev_mobile varchar2(30),
Address varchar2(30),
prev_address varchar2(30),
Zipcode number,
prev_zipcode number,
Country varchar2(30),
created_date date,
updated_date date);
Prev_Zipcode Country
India
India
USA
Australia
Canada

You might also like