Created
May 16, 2022 10:59
-
-
Save dbrrt/f57323ca7794242944cf4809fa5e75a7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| create table cc_stage( | |
| cc_num int, | |
| cc_mgr varchar | |
| ); | |
| create table cc_prod( | |
| cc_num int | |
| cc_mgr varchar, | |
| valid_from date, | |
| valid_to date, | |
| current_flag boolean | |
| ); | |
| insert into cc_stage VALUES (1, 'dbarrat'); | |
| delete from cc_prod; | |
| INSERT INTO cc_prod(cc_num, cc_mgr, valid_from, valid_to, current_flag) | |
| ( | |
| SELECT cc_num, cc_mgr, CURRENT_DATE, null, true | |
| FROM cc_stage cs | |
| WHERE NOT EXISTS ( | |
| SELECT * | |
| FROM cc_prod cp | |
| WHERE cs.cc_num = cp.cc_num | |
| ) | |
| ); | |
| UPDATE cc_prod | |
| SET current_flag = false, valid_to = current_date | |
| where exists ( | |
| SELECT * | |
| FROM cc_stage cs | |
| WHERE cs.cc_num = cc_prod.cc_num | |
| and cs.cc_mgr <> cc_prod.cc_mgr | |
| and current_flag = true | |
| ); | |
| insert into cc_prod(cc_num, cc_mgr, valid_from, valid_to, current_flag) | |
| ( | |
| SELECT cc_num, cc_mgr, CURRENT_DATE, null, true | |
| FROM cc_stage cs | |
| WHERE EXISTS ( | |
| SELECT * | |
| FROM cc_prod cp | |
| WHERE cs.cc_num = cp.cc_num | |
| and cs.cc_mgr <> cp.cc_mgr | |
| and cp.valid_to = CURRENT_DATE | |
| ) | |
| ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment